Rust implementation of JSON-RPC 2.0 Specification. Transport-agnostic core and transport servers for http, ipc, websockets and tcp.
- jsonrpc-core
- jsonrpc-http-server
- jsonrpc-ipc-server
- jsonrpc-tcp-server
- jsonrpc-ws-server
- jsonrpc-stdio-server
- jsonrpc-macros
deprecated: use
deriveinstead - jsonrpc-derive
- jsonrpc-server-utils
- jsonrpc-pubsub
use jsonrpc_core::{IoHandler, Value, Params}; use jsonrpc_http_server::{ServerBuilder}; fn main() { let mut io = IoHandler::new(); io.add_method("say_hello", |_params: Params| { Ok(Value::String("hello".to_string())) }); let server = ServerBuilder::new(io) .threads(3) .start_http(&"127.0.0.1:3030".parse().unwrap()) .unwrap(); server.wait().unwrap(); }use jsonrpc_core::Result; use jsonrpc_derive::rpc; #[rpc] pub trait Rpc { /// Adds two numbers and returns a result #[rpc(name = "add")] fn add(&self, u64, u64) -> Result<u64>; } pub struct RpcImpl; impl Rpc for RpcImpl { fn add(&self, a: u64, b: u64) -> Result<u64> { Ok(a + b) } } fn main() { let mut io = jsonrpc_core::IoHandler::new(); io.extend_with(RpcImpl.to_delegate()) }