Releases: microsoft/vs-streamjsonrpc
Releases · microsoft/vs-streamjsonrpc
v2.0.180
v2.0.167
v2.0.146
v2.0
This release contains API breaking changes from the 1.x versions.
Highlights
- Support for the new .NET Pipelines API (
PipeReader
andPipeWriter
) 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
v1.5
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
v1.4
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.