Crate jsonrpc_core [] [src]

Transport agnostic jsonrpc library.

Right now it supports only server side handling requests.

extern crate jsonrpc_core;

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

Reexports

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

RpcMethodSync

Synchronous Method

RpcNotification

Notification with Metadata

RpcNotificationSimple

Notification

Type Definitions

FutureResponse

A type representing middleware or RPC response before serialization.