Crate rs_jsonrpc_core

Source
Expand description

§Transport agnostic jsonrpc library.

Right now it supports only server side handling requests.

extern crate rs_jsonrpc_core;

use rs_jsonrpc_core::*;
use rs_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 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
RpcMethod
Asynchronous Method with Metadata
RpcMethodSimple
Asynchronous Method
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.