Crate jsonrpc_core[−][src]
Transport agnostic jsonrpc library.
Right now it supports only server side handling requests.
use jsonrpc_core::*; use jsonrpc_core::futures::Future; fn main() { let mut io = IoHandler::new(); io.add_method("say_hello", |_| { Ok(Value::String("Hello World!".into())) }); let request = r#"{"jsonrpc": "2.0", "method": "say_hello", "params": [42, 23], "id": 1}"#; let response = r#"{"jsonrpc":"2.0","result":"Hello World!","id":1}"#; assert_eq!(io.handle_request(request).wait().unwrap(), Some(response.to_string())); }
Re-exports
pub use futures; | |
pub use crate::delegates::IoDelegate; | |
pub use crate::middleware::Middleware; | |
pub use crate::middleware::Noop as NoopMiddleware; | |
pub use crate::types::*; |
Modules
| delegates | Delegate rpc calls |
| middleware |
|
| types | JSON-RPC types |
Structs
| IoHandler | Simplified |
| MetaIoHandler | Request handler |
Enums
| Compatibility |
|
| RemoteProcedure | Possible Remote Procedures with Metadata |
Traits
| IoHandlerExtension | A type that can augment |
| Metadata | Metadata trait |
| RpcMethod | Asynchronous Method with Metadata |
| RpcMethodSimple | Asynchronous Method |
| RpcNotification | Notification with Metadata |
| RpcNotificationSimple | Notification |
Functions
| serde_from_str | workaround for https://github.com/serde-rs/json/issues/505 Arbitrary precision confuses serde when deserializing into untagged enums, this is a workaround |
Type Definitions
| BoxFuture | A |
| FutureOutput | A type representing middleware or RPC call output. |
| FutureResponse | A type representing middleware or RPC response before serialization. |
| FutureResult | A type representing future string response. |
| FutureRpcResult | A type representing an optional |
| Result | A Result type. |