vs-streamjsonrpc

The StreamJsonRpc library offers JSON-RPC 2.0 over any .NET Stream, WebSocket, or Pipe. With bonus support for request cancellation, client proxy generation, and more.

OTHER License

Stars
732
Committers
58

Bot releases are hidden (Show)

vs-streamjsonrpc - v2.6.121

Published by AArnott almost 4 years ago

Changes:

  • #559: Bump Nerdbank.Streams from 2.5.76 to 2.6.77 in /src
  • #558: Bump MessagePackAnalyzer from 2.1.165 to 2.1.194 in /src
  • #557: Bump MessagePack from 2.1.165 to 2.1.194 in /src
  • #556: Fix Newtonsoft.Json assembly load in non JSON scenario

This list of changes was auto generated.

vs-streamjsonrpc - v2.6.99-rc

Published by AArnott about 4 years ago

Changes:

Fixes:

  • #550: JsonRpc.TransmitAsync logs OperationCanceledException

Enhancements:

  • #555: Send error to client when server fails to serialize response
  • #554: Promote error info into RemoteRpcException
  • #541: Add ICancellationStrategy extensibility point
  • #549: Better handling of failures to serialize RPC method return value

This list of changes was auto generated.

vs-streamjsonrpc - v2.6.86-alpha

Published by AArnott about 4 years ago

Changes:

Fixes:

  • #537: IProgress<T> support fails when using MessagePack where T is a [Union] type
  • #481: Events raised twice on client if events are declared as abstract events on server
  • #508: User-supplied MessagePackSerializerOptions no longer honored at full fidelity
  • #487: Change default DateParseHandling behavior of Newtonsoft.Json

Enhancements:

  • #539: Tighten up exceptions thrown by formatters
  • #246: Stabilize Dispose patterns
  • #346: Add support for passing IObserver<T> objects over RPC
  • #532: Add support for passing IDisposable objects over RPC
  • #521: JsonRpc should preserve order of invocations on RPC server by default
  • #522: Dynamic proxies should implement void returning methods by sending notifications
  • #517: Missing JsonRpc method to expose only members of a given interface from a given RPC target object
  • #502: Expose JsonRpc.CreateExceptionFromRpcError as a protected virtual method
  • #505: Add support for serializing exceptions
  • #503: Omit the error.data property when it is null
  • #501: Rename TransmissionCompletedSize event and add received event
  • #490: Add support for MessagePack [Union] types as parameter and return types
  • #480: Support streams as a return type
  • #460: MessagePackFormatter fails to deserialize Union types

Others:

  • #540: Fix IProgress<T> when T is a MessagePack [Union] type
  • #538: Document by test the exceptions thrown in disconnect scenarios
  • #536: Add support for marshaling IObserver over RPC
  • #533: Add support for marshaling IDisposable objects over RPC
  • #535: Bump Microsoft.NET.Test.Sdk from 16.7.0 to 16.7.1 in /src
  • #534: Run tests on mono using dotnet test
  • #531: Changed target insertion branch for VS
  • #529: Bump MessagePackAnalyzer from 2.1.152 to 2.1.165 in /src
  • #527: Bump MessagePack from 2.1.152 to 2.1.165 in /src
  • #530: Bump Microsoft.Net.Compilers.Toolset from 3.6.0 to 3.7.0 in /src
  • #528: Bump Microsoft.CodeAnalysis.PublicApiAnalyzers from 3.3.0-beta1.final to 3.3.0 in /src
  • #526: Add support for void returning methods in RPC interfaces
  • #524: Add Notify methods for declared argument types
  • #525: Switch default to to retain order of incoming RPC invocations
  • #523: JsonRpc.NotifyAsync needs an overload with declared parameter types
  • #520: Only raise events from RPC targets once
  • #519: Add JsonRpc.AddLocalRpcTarget method
  • #518: Expose CreateExceptionFromRpcError as a protected virtual method
  • #514: Bump Microsoft.Bcl.AsyncInterfaces from 1.0.0 to 1.1.1 in /src
  • #512: Bump System.IO.Pipelines from 4.7.0 to 4.7.2 in /src
  • #513: Bump System.Threading.Tasks.Extensions from 4.5.3 to 4.5.4 in /src
  • #511: Bump System.Threading.Tasks.Dataflow from 4.9.0 to 4.11.1 in /src
  • #516: Bump Microsoft.NET.Test.Sdk from 16.6.1 to 16.7.0 in /src
  • #510: Activate Dependabot and update several dependencies
  • #509: Preserve user-supplied MessagePackSerializerOptions
  • #507: Merge release/vs/16.8-preview.1 to master
  • #506: Fixed proxy generation for methods with many parameters
  • #504: Update Nerdbank.Streams to 2.5.72
  • #500: Update CredScan version
  • #499: Merge v2.5 into master
  • #496: Prevent JSON deserializer from scrambling dates
  • #495: Attempt to stabilize test InvokeThenCancelToken_BetweenWriteAndFlush
  • #494: Fixes a few test issues
  • #492: Fix mis-reported cancellation of message transmission
  • #493: ClientCanWriteAndReadFromTwoWayStream test causes test process to crash
  • #491: Update .NET SDK to 3.1.302
  • #488: Add TransmissionCompletedSize ETW event
  • #486: Removed extra space in secure-development-tools.yml
  • #483: Added security.md file
  • #482: Added security tenet checking

This list of changes was auto generated.

vs-streamjsonrpc - v2.5.46

Published by AArnott about 4 years ago

  • Updates Nerdbank.Streams dependency to 2.5.76 to address connection stability issues.
vs-streamjsonrpc - v2.5.44

Published by AArnott about 4 years ago

Changes:

  • #498: Fix mis-reported cancellation of message transmission
  • #489: Race condition in InvokeWithCancellationAsync

This list of changes was auto generated.

vs-streamjsonrpc - v2.5.36-alpha

Published by AArnott over 4 years ago

Changes:

Fixes:

  • #474: Skip unrecognized properties in msgpack-encoded messages
  • #461: Clear reserved buffer on reader disposal
  • #472: Fail gracefully if json-rpc 2.0 error or result is missing id

Enhancements:

  • #476: Trace message transmission failures
  • #467: Add JsonRpc.DispatchCompletion property
  • #465: Fix deserialization of messages with null IDs
  • #459: Trace failures to report progress
  • #430: Support IAsyncEnumerable prefetch without returning Task<IAsyncEnumerable<T>>
  • #446: Added UseSingleObjectParameterDeserialization option to JsonRpcTargetOptions

Others:

  • #463: Add devcontainer.json
  • #462: Update Nerdbank.Streams to 2.5.58

This list of changes was auto generated.

vs-streamjsonrpc - v2.4.48

Published by AArnott over 4 years ago

Changes:

Fixes:

  • #455: The output char buffer is too small to contain the decoded characters...

Enhancements:

  • #448: Add JsonRpcTargetOptions to auto-dispose target object on connection loss
  • #447: Allow IDisposable or IAsyncDisposable to be implemented by RPC interfaces
  • #440: Provide order-preserving SynchronizationContext

Others:

  • #458: Apply fix for IAsyncEnumerable failure
  • #456: Update Nerdbank.Streams to 2.4.67
  • #451: Add test for async iterator method throwing an exception
  • #449: Allow RPC interfaces to derive from IDisposable
  • #450: Add JsonRpcTargetOptions.DisposeOnDisconnect
  • #428: Fix env var capitalization handling

This list of changes was auto generated.

vs-streamjsonrpc - v2.4.24-rc

Published by AArnott over 4 years ago

Changes:

Fixes:

  • #441: Canceled RPC request recognized as error instead of cancellation if RPC server method is implemented synchronously

Others:

  • #442: Report cancellation when sync RPC methods throw OperationCanceledException
  • #438: Suppress compile warnings
  • #437: Update dependencies
  • #429: ms-vscode.csharp to ms-dotnettools.csharp
  • #422: Update to Nerdbank.Streams 2.4.60
  • #418: fix typo in RequestId class doc
  • #408: Merge v2.3 into master

This list of changes was auto generated.

vs-streamjsonrpc - v2.3.103

Published by AArnott over 4 years ago

Changes:

  • Update Nerdbank.Streams dependency to 2.4.60. This gets IAsyncEnumerable<T> working where T is a managed type.

This list of changes was auto generated.

vs-streamjsonrpc - v2.3.99

Published by AArnott over 4 years ago

Changes:

Fixes:

  • #350: HeaderDelimitedMessageHandler.Write throws when in race with disposal
  • #413: PipeMessageHandler.Dispose should not Complete reader/writer directly
  • #417: Sign xml doc comment files
  • #415: Update Nerdbank.Streams to 2.4.57
  • #414: Avoid completing reader or writer except after they are done

Enhancements:

  • #404: Add NewLineDelimitedMessageHandler

Others:

  • #405: Bump MessagePack from 2.0.323 to 2.1.80 in /src/StreamJsonRpc
  • #406: Update several package references

This list of changes was auto generated.

vs-streamjsonrpc - v2.3.80-rc

Published by AArnott almost 5 years ago

Changes:

Fixes:

  • #400: JsonRpc wraps failure to deserialize argument with misleading exception
  • #386: Improve/Fix GetJsonText on built-in formatters
  • #377: Custom JsonConverter not used for deserialization of items Reported by IProgress instance.
  • #371: Multiple IProgress parameters in a single method signature doesn't work
  • #372: Async hang when message transmission fails

Enhancements:

  • #402: Report argument deserialization failures more precisely
  • #396: UI delay caused by JsonRpc.Dispose()
  • #369: RemoteInvocationException.ToString() return value should include remote callstack
  • #385: Replace specialized tracker code in formatters with general APIs
  • #379: Add IAsyncEnumerable support
  • #375: Keep CancellationToken given to RPC methods working on net472 after method completion
  • #367: Add built-in MessagePack formatter
  • #357: Enable nullable ref types
  • #353: Reduce allocations for invocations that have non-cancelable tokens
  • #347: Support for deserializing params object as single first parameter
  • #329: serialize the id field as a string

Others:

  • #401: Replace test project's netcoreapp2.2 target with netcoreapp3.1
  • #399: Update to stable MessagePack 2.0.323
  • #397: Avoid synchronous blocking in common case from JsonRpc.Dispose
  • #398: Fix verbose RPC message tracing
  • #395: Include RPC server stack trace in RemoteInvocationException.ToString()
  • #394: Document (and test) that obtaining error data is much simpler now
  • #252: Extracting exception details on the client is too complicated
  • #392: Update MessagePack version
  • #393: Merge v2.2 to master
  • #388: Fix hang on deserialization exception
  • #389: Optimize RPC traffic for IAsyncEnumerable<T>
  • #382: Use user-supplied JsonConverters when deserializing IProgress report
  • #381: Move IJsonRpcMessageBufferManager into Reflection namespace
  • #380: Move IJsonRpcMessageBufferManager into Reflection namespace
  • #374: Fix bugs in IProgress handling
  • #373: Fix hang when ObjectDisposedException or OCE is thrown but for an unexpected reason
  • #370: LOC CHECKIN | Microsoft/vs-streamjsonrpc master | 20191122
  • #368: Update MessagePack to 2.0.231-rc
  • #362: Package dependency updates and better Public API tracking
  • #361: Get Live Unit Testing running more smoothly
  • #359: Provide deterministic way to await for async disposal
  • #358: Merge v2.2 to master
  • #352: Only complete PipeReader/PipeWriter after operations complete
  • #355: Update to .NET Core 3.0 SDK and C# 8
  • #348: Add support for custom (string based) request IDs

This list of changes was auto generated.

vs-streamjsonrpc - v2.3.65-alpha

Published by AArnott almost 5 years ago

Changes:

Fixes:

  • #377: Custom JsonConverter not used for deserialization of items Reported by IProgress instance.
  • #371: Multiple IProgress parameters in a single method signature doesn't work
  • #372: Async hang when message transmission fails
  • #350: HeaderDelimitedMessageHandler.Write throws when in race with disposal
  • #382: Use user-supplied JsonConverters when deserializing IProgress report
  • #374: Fix bugs in IProgress handling
  • #352: Only complete PipeReader/PipeWriter after operations complete

Enhancements:

  • #379: Add IAsyncEnumerable support
  • #367: Add built-in MessagePack formatter
  • #347: Support for deserializing params object as single first parameter
  • #348: Add support for custom (string based) request IDs
  • #357: Enable nullable ref types
  • #353: Reduce allocations for invocations that have non-cancelable tokens

Others:

  • #392: Update MessagePack version
  • #393: Merge v2.2 to master
  • #391: Workaround issues on mono and get tests running
  • #388: Fix hang on deserialization exception
  • #389: Optimize RPC traffic for IAsyncEnumerable<T>
  • #387: Getting a StreamJsonRpc.RemoteInvocationException when invoking a server->client RPC on Mono.
  • #383: Use user-supplied JsonConverters when deserializing IProgress report
  • #381: Move IJsonRpcMessageBufferManager into Reflection namespace
  • #380: Move IJsonRpcMessageBufferManager into Reflection namespace
  • #373: Fix hang when ObjectDisposedException or OCE is thrown but for an unexpected reason
  • #370: LOC CHECKIN | Microsoft/vs-streamjsonrpc master | 20191122
  • #368: Update MessagePack to 2.0.231-rc
  • #364: Only complete PipeReader/PipeWriter after operations complete
  • #359: Provide deterministic way to await for async disposal
  • #363: Fix intermittent test failures
  • #362: Package dependency updates and better Public API tracking
  • #361: Get Live Unit Testing running more smoothly
  • #358: Merge v2.2 to master
  • #356: LOC CHECKIN | Microsoft/vs-streamjsonrpc v2.2 | 20191104
  • #355: Update to .NET Core 3.0 SDK and C# 8
  • #351: Improve tests to timeout quickly instead of hang when product defects exist

This list of changes was auto generated.

vs-streamjsonrpc - v2.2.53

Published by AArnott almost 5 years ago

Changes:

Adds mono support.

Fixes:

  • #377: Custom JsonConverter not used for deserialization of items Reported by IProgress instance.
  • #350: HeaderDelimitedMessageHandler.Write throws when in race with disposal
  • #387: Getting a StreamJsonRpc.RemoteInvocationException when invoking a server->client RPC on Mono.

Others:

  • #391: Workaround issues on mono and get tests running
  • #383: Use user-supplied JsonConverters when deserializing IProgress report
  • #364: Only complete PipeReader/PipeWriter after operations complete
  • #359: Provide deterministic way to await for async disposal
  • #363: Fix intermittent test failures
  • #356: LOC CHECKIN | Microsoft/vs-streamjsonrpc v2.2 | 20191104
  • #351: Improve tests to timeout quickly instead of hang when product defects exist

This list of changes was auto generated.

vs-streamjsonrpc - v2.2.34

Published by AArnott almost 5 years ago

Enhancements

  • Add support for IProgress<T> parameters (#320)
  • Add support for marshaling an IDuplexPipe, PipeReader, PipeWriter, or Stream as a JSON-RPC argument (#334 #344)
  • Add support for dynamic proxies with non-public interfaces (#342)
  • Add JsonRpc.Attach(Type) (non-generic) method overloads (#324)
  • Add ability to relay messages (#319)

Fixes

  • Fix handling of events declared on the base types of target objects (#340)
vs-streamjsonrpc - v2.1.74

Published by AArnott almost 5 years ago

  • Add ETW events (#322)
  • Improved exception handling in JsonMessageFormatter (#321)
vs-streamjsonrpc - v2.1.55

Published by AArnott about 5 years ago

  • Add static JsonRpc.Attach<T>(IJsonRpcMessageHandler) overloads #251
  • Avoid transmitting an async Task result as an empty object back to the client #259
  • Dynamic client proxies always implement IDisposable #298
  • Dynamic client proxies always expose original JsonRpc instance via the new IJsonRpcClientProxy interface #295 #300
  • Accept a response where the id is encoded as a string instead of a number #291
vs-streamjsonrpc - v2.0.208

Published by AArnott over 5 years ago

  • Fix support for target object events with certain generic delegates that regressed in v2.0.203 #292
vs-streamjsonrpc - v2.0.203

Published by AArnott over 5 years ago

  • Significant GC pressure improvements #279
  • Add support for dynamic client proxy generation where interfaces define events where the event args do not actually derive from EventArgs #284
vs-streamjsonrpc - v1.5.68

Published by AArnott over 5 years ago

Fixes race condition in StartListening and InvokeAsync #269

vs-streamjsonrpc - v2.0.187

Published by AArnott over 5 years ago

This is a servicing release that fixes the following two bugs:

  • Fixes race condition in StartListening and InvokeAsync #269
  • Add JsonRpcRequest.ArgumentsList to allow arguments as non-arrays, correcting a regression from the 1.x versions #272