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.0.180

Published by AArnott over 5 years ago

  • Throw OCE from canceled requests even when remote disconnects before sending cancellation acknowledgment #265
vs-streamjsonrpc - v2.0.167

Published by AArnott over 5 years ago

  • Use safe technique for length prefixing with IBufferWriter<T> #247
  • Fix handling of nullable return types #237
  • Add net472-specific target in NuGet package (avoids facade assembly loads on that framework)
vs-streamjsonrpc - v2.0.146

Published by AArnott over 5 years ago

Fixes propagation of JSON parse settings (#227)

vs-streamjsonrpc - v2.0

Published by AArnott almost 6 years ago

This release contains API breaking changes from the 1.x versions.

Highlights

  • Support for the new .NET Pipelines API (PipeReader and PipeWriter) for higher performance
  • Decoupled from Newtonsoft.Json, allowing alternative message formatters to be plugged in such as high performance MessagePack
  • Message handling is now an extensibility point, enabling custom message routing, filtering/modification, and alternate transports such as HTTP
  • Add LengthHeaderMessageHandler as a high performance alternative to the default HTTP-like headers message handler.
  • Logging support via TraceSource
  • Default to blocking of RPC invocations of non-public methods on your target objects
  • Better server-side support for named arguments (the JSON params object in the spec). Now server methods can define each parameter separately rather than being required to take a JToken
  • Offer more control of error messages returned to the client
  • Throw ConnectionLostException when connection drops before a response is received to an outbound request
vs-streamjsonrpc - v1.5

Published by AArnott almost 6 years ago

Highlights

New in 1.5 over the 1.4 version (exhaustive list):

  • Add non-generic InvokeWithParameterObject method
  • Add option to automatically cancel server methods when the connection is dropped (Roslyn partner team request)
  • Lots of perf and GC pressure improvements
  • SourceLink-enabled portable PDB included in the package for easy step-into debugging from your application code
  • Enable blocking of RPC invocations of non-public methods on your target objects
vs-streamjsonrpc - v1.4

Published by AArnott almost 6 years ago

Highlights

  • Performance improvements
  • Throw OperationCanceledException instead of RemoteInvocationException when server method is canceled #71
  • Add JsonRpc.Completion property to more easily await the connection's completion and handle exceptions that led to unexpected disconnection. #77
  • Fix support for combined CancellationToken and parameter objects #83
  • Add support for WebSocket #81
  • Allow server the option to crash on exception thrown #74
  • Allow JsonRpc modification while listening #90
  • Support using SynchronizationContext to invoke server methods #92
  • Add support for RPC method name transforms when adding a local target objects #100
  • Add JsonRpc.Attach client proxy generating method #108
  • .NET Core 2.1 compatibility fix: Fix handling of Task-derived types returned from async methods #117
  • Fix handling of plain-Task returned objects from server methods #131
  • Accept error responses where error.data is a primitive #127
  • Fix cancellation race that can result in connection termination #168

Potentially breaking

  • Add support for target object events #105. If your RPC target objects already define events, this could be potentially breaking. With this new feature, a way to opt-out is provided to avoid the break.