2016-06-11 22:27:15 +03:00
StreamJsonRpc
===============
2017-01-14 05:09:05 +03:00
[![NuGet package ](https://img.shields.io/nuget/v/StreamJsonRpc.svg )](https://nuget.org/packages/StreamJsonRpc)
2018-11-13 02:19:01 +03:00
[![Build Status ](https://dev.azure.com/azure-public/vside/_apis/build/status/vs-streamjsonrpc )](https://dev.azure.com/azure-public/vside/_build/latest?definitionId=13)
2017-02-07 03:08:03 +03:00
[![codecov ](https://codecov.io/gh/Microsoft/vs-streamjsonrpc/branch/master/graph/badge.svg )](https://codecov.io/gh/Microsoft/vs-streamjsonrpc)
2017-03-10 20:23:19 +03:00
[![Join the chat at https://gitter.im/vs-streamjsonrpc/Lobby ](https://badges.gitter.im/vs-streamjsonrpc/Lobby.svg )](https://gitter.im/vs-streamjsonrpc/Lobby?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge)
2017-01-14 05:09:05 +03:00
2016-06-11 22:27:15 +03:00
StreamJsonRpc is a cross-platform, .NET portable library that implements the
[JSON-RPC][JSONRPC] wire protocol.
2017-12-31 00:03:28 +03:00
It works over [Stream ](https://docs.microsoft.com/en-us/dotnet/api/system.io.stream ) or [WebSocket ](https://docs.microsoft.com/en-us/dotnet/api/system.net.websockets.websocket ) independent of the underlying transport.
2016-06-11 22:27:15 +03:00
2018-09-13 00:10:54 +03:00
Bonus features beyond the JSON-RPC spec include:
1. Request cancellation
1. .NET Events as notifications
1. Dynamic client proxy generation
2016-09-25 08:14:51 +03:00
## Supported platforms
* .NET 4.5
* Windows 8
* Windows Phone 8.1
2017-12-31 00:03:28 +03:00
* .NET Portable (Profile111)
* .NET Standard 1.1
2016-09-25 08:14:51 +03:00
2017-03-10 20:23:19 +03:00
## Compatibility
2016-06-11 22:27:15 +03:00
This library has been tested with and is compatible with the following other
JSON-RPC libraries:
* [json-rpc-peer][json-rpc-peer] (npm)
2017-10-13 20:27:34 +03:00
## Documentation
2017-10-13 20:36:03 +03:00
[Documentation ](doc/index.md )
2017-10-13 20:27:34 +03:00
2016-06-11 22:27:15 +03:00
## Testability/mockability
Testing this library or users of this library can be done without any transport
by using the [Nerdbank.FullDuplexStream][FullDuplexStream] library in your tests
to produce the Stream object.
2017-12-19 20:53:58 +03:00
[JSONRPC]: http://jsonrpc.org/
2016-06-11 22:27:15 +03:00
[json-rpc-peer]: https://www.npmjs.com/package/json-rpc-peer
[FullDuplexStream]: https://www.nuget.org/packages/nerdbank.fullduplexstream