Crate solana_jsonrpc_core[][src]

Transport agnostic jsonrpc library.

Right now it supports only server side handling requests.

extern crate solana_jsonrpc_core as 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()));
}

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 Definitions

BoxFuture

A Future trait object.

FutureOutput

A type representing a result of a single method call.

FutureResponse

A type representing middleware or RPC response before serialization.

FutureResult

A type representing future string response.

FutureRpcResult

A type representing an optional Response for RPC Request.

Result

A Result type.