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.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


NuGet package Build Status codecov Join the chat at

StreamJsonRpc is a cross-platform, .NET portable library that implements the JSON-RPC wire protocol.

It works over Stream, WebSocket, or System.IO.Pipelines pipes, independent of the underlying transport.

Bonus features beyond the JSON-RPC spec include:

  1. Request cancellation
  2. .NET Events as notifications
  3. Dynamic client proxy generation
  4. Support for compact binary serialization (e.g. MessagePack)

Supported platforms

  • .NET 4.6
  • .NET Standard 1.6
  • .NET Standard 2.0


This library has been tested with and is compatible with the following other JSON-RPC libraries:




Testing this library or users of this library can be done without any transport by using the Nerdbank.FullDuplexStream library in your tests to produce the Stream object.