Stable Test codecov Rust Docs Crate version Download MSRV-1.40 License: MIT

roa-jsonrpc

This crate provides a json rpc endpoint.

Example

```rust,norun use roa::App; use roajsonrpc::{RpcEndpoint, Data, Error, Params, Server}; use std::error::Error as StdError;

[derive(serde::Deserialize)]

struct TwoNums { a: usize, b: usize, }

async fn add(Params(params): Params) -> Result { Ok(params.a + params.b) }

async fn sub(Params(params): Params<(usize, usize)>) -> Result { Ok(params.0 - params.1) }

async fn message(data: Data) -> Result { Ok(String::from(&*data)) }

[async_std::main]

async fn main() -> std::io::Result<()> { let rpc = Server::new() .withdata(Data::new(String::from("Hello!"))) .withmethod("sub", sub) .with_method("message", message) .finish();

let app = App::new().end(RpcEndpoint(rpc));
app.listen("127.0.0.1:8000", |addr| {
    info!("Server is listening on {}", addr)
})?
.await?;
Ok(())

} ```