json_rpc_2 3.0.2 icon indicating copy to clipboard operation
json_rpc_2: ^3.0.2 copied to clipboard

Utilities to write a client or server using the JSON-RPC 2.0 spec.

3.0.2 #

  • Switch to using package:lints.
  • Address a few analysis hint violations.
  • Populate the pubspec repository field.

3.0.1 #

  • Fix a bug where a null result to a request caused an exception.

3.0.0 #

  • Migrate to null safety.
  • Accept responses even if the server converts the ID to a String.

2.2.2 #

  • Fix Peer.close() throwing Bad state: Future already completed.

2.2.1 #

  • Fix Peer requests not terminating when the underlying channel is closed.

2.2.0 #

  • Added strictProtocolChecks named parameter to Server and Peer constructors. Setting this parameter to false will result in the server not rejecting requests missing the jsonrpc parameter.

2.1.1 #

  • Fixed issue where throwing RpcException.methodNotFound in an asynchronous fallback handler would not result in the next fallback being executed.
  • Updated minimum SDK to Dart 2.2.0.

2.1.0 #

  • Server and related classes can now take an onUnhandledError callback to notify callers of unhandled exceptions.

2.0.10 #

  • Allow stream_channel version 2.x

2.0.8 #

  • Updated SDK version to 2.0.0-dev.17.0

2.0.7 #

  • When a Client is closed before a request completes, the error sent to that request's Future now includes the request method to aid in debugging.

2.0.6 #

  • Internal changes only.

2.0.5 #

  • Internal changes only.

2.0.4 #

  • Client.sendRequest() now throws a StateError if the client is closed while the request is in-flight. This avoids dangling Futures that will never be completed.

  • Both Client.sendRequest() and Client.sendNotification() now throw StateErrors if they're called after the client is closed.

2.0.3 #

  • Fix new strong-mode warnings.

2.0.2 #

  • Fix all strong-mode warnings.

2.0.1 #

  • Fix a race condition in which a StateError could be top-leveled if Peer.close() was called before the underlying channel closed.

2.0.0 #

  • Breaking change: all constructors now take a StreamChannel rather than a Stream/StreamSink pair.

  • Client.sendRequest() and Client.sendNotification() no longer throw StateErrors after the connection has been closed but before Client.close() has been called.

  • The various close() methods may now be called before their corresponding listen() methods.

  • The various close() methods now wait on the result of closing the underlying StreamSink. Be aware that in some circumstances StreamControllers' Sink.close() futures may never complete.

1.2.0 #

  • Add Client.isClosed and Server.isClosed, which make it possible to synchronously determine whether the connection is open. In particular, this makes it possible to reliably tell whether it's safe to call Client.sendRequest.

  • Fix a race condition in Server where a StateError could be thrown if the connection was closed in the middle of handling a request.

  • Improve stack traces for error responses.

1.1.1 #

  • Update the README to match the current API.

1.1.0 #

  • Add a done getter to Client, Server, and Peer.

1.0.0 #

  • Add a Client class for communicating with external JSON-RPC 2.0 servers.

  • Add a Peer class that's both a Client and a Server.

0.1.0 #

  • Remove Server.handleRequest() and Server.parseRequest(). Instead, new Server() takes a Stream and a StreamSink and uses those behind-the-scenes for its communication.

  • Add Server.listen(), which causes the server to begin listening to the underlying request stream.

  • Add Server.close(), which closes the underlying request stream and response sink.

0.0.2+3 #

  • Widen the version constraint for stack_trace.

0.0.2+2 #

  • Fix error response to include data from RpcException when not a map.
pub points


verified publisher icontools.dart.dev

Utilities to write a client or server using the JSON-RPC 2.0 spec.

Repository (GitHub)
View/report issues


API reference


Icon for licenses.BSD-3-Clause (LICENSE)


stack_trace, stream_channel


Packages that depend on json_rpc_2