Crate s_jsonrpc_core

Source
Expand description

§Transport agnostic jsonrpc library.

Right now it supports only server side handling requests.

extern crate s_jsonrpc_core;

use s_jsonrpc_core::*;
use s_jsonrpc_core::futures::Future;

fn main() {
	let mut io = IoHandler::new();
	io.add_msod("say_hello", |_| {
		Ok(Value::String("Hello World!".into()))
	});

	let request = r#"{"jsonrpc": "2.0", "msod": "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 extern crate futures;
pub use types::*;

Modules§

types
JSON-RPC types

Structs§

IoHandler
Simplified IoHandler with no Metadata associated with each request.
MetaIoHandler
Request handler
NoopMiddleware
No-op middleware implementation

Enums§

Compatibility
IoHandler json-rpc protocol compatibility
RemoteProcedure
Possible Remote Procedures with Metadata

Traits§

Metadata
Metadata trait
Middleware
RPC middleware
RpcMsod
Asynchronous Msod with Metadata
RpcMsodSimple
Asynchronous Msod
RpcNotification
Notification with Metadata
RpcNotificationSimple
Notification

Type Aliases§

BoxFuture
A Future trait object.
FutureResponse
A type representing middleware or RPC response before serialization.
FutureResult
A type representing future string response.
Result
A Result type.