#json-rpc #minimalist #protocols #base #request #type #id

no-std jsonrpc-base

A minimalistic types implementation of the JSON-RPC protocol

2 unstable releases

0.2.0 Jun 20, 2023
0.1.0 Jun 19, 2023

#78 in #base

MIT/Apache

26KB
634 lines

jsonrpc-base

A minimalistic types implementation of the JSON-RPC protocol.

crates.io Documentation License

Example

use jsonrpc_base::Request;

let (id, request) = Request::new("foo/barBaz")
    .with_params(vec![1, 2, 3])
    .expect("vec JSON parse will not fail")
    .prepare();

let mut lines = request.lines();
assert_eq!(lines.next(), Some("Content-Length: 100"));
assert_eq!(lines.next(), Some(""));

let mut message = String::new();
message.push_str(r#"{"jsonrpc":"2.0","id":"#);
message.push_str(id.to_string().as_str());
message.push_str(r#","method":"foo/barBaz","params":[1,2,3]}"#);
assert_eq!(lines.next(), Some(message.as_str()));

Dependencies

~0.8–1.6MB
~36K SLoC