rmp-rpc

A Rust implementation of MessagePack-RPC inspired by msgpack-rpc-rust, but based on tokio

Example

```rust extern crate tokioproto; extern crate rmprpc;

use tokioproto::TcpServer; use rmprpc::{Server, Protocol, Dispatch}; use rmp_rpc::msgpack::{Value, Utf8String, Integer};

// A simple dispatcher that know only two methods, "hello" and "world"

[derive(Clone)]

pub struct HelloWorld;

impl Dispatch for HelloWorld { fn dispatch(&self, method: &str, _params: &[Value]) -> Result { match method { "hello" => { Ok(Value::String(Utf8String::from("hello"))) } "world" => { Ok(Value::String(Utf8String::from("world"))) } _ => { Err(Value::String(Utf8String::from(format!("Invalid method {}", method)))) } } } }

fn main() { let addr = "127.0.0.1:54321".parse().unwrap(); let tcpserver = TcpServer::new(Protocol, addr); // Instantiate a new server for each client. tcpserver.serve(|| { Ok(Server::new(HelloWorld{})) }); }

```