Crate jsonrpc_core [] [src]

Transport agnostic jsonrpc library.

Right now it supports only server side handling requests.

extern crate jsonrpc_core;
extern crate futures;

use futures::Future;
use jsonrpc_core::*;

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()));
}

Reexports

pub use types::*;

Modules

types

JSON-RPC types

Structs

IoHandler

Simplified IoHandler with no Metadata associated with each request.

MetaIoHandler

Request handler

Enums

Compatibility

IoHandler json-rpc protocol compatibility

RemoteProcedure

Possible Remote Procedures with Metadata

Traits

Metadata

Metadata marker trait

RpcMethod

Asynchronous Method with Metadata

RpcMethodSimple

Asynchronous Method

RpcMethodSync

Synchronous Method

RpcNotification

Notification with Metadata

RpcNotificationSimple

Notification