Crate capnp_rpc[−][src]
An implementation of the Cap’n Proto remote procedure call protocol. Includes all Level 1 features.
Example
# Cap'n Proto schema
interface Foo {
identity @0 (x: UInt32) -> (y: UInt32);
}
// Rust server defining an implementation of Foo. struct FooImpl; impl foo::Server for FooImpl { fn identity(&mut self, params: foo::IdentityParams, mut results: foo::IdentityResults) -> Promise<(), ::capnp::Error> { let x = pry!(params.get()).get_x(); results.get().set_y(x); Promise::ok(()) } }
// Rust client calling a remote implementation of Foo. let mut request = foo_client.identity_request(); request.get().set_x(123); let promise = request.send().promise.and_then(|response| { println!("results = {}", response.get()?.get_y()); Ok(()) });
For a more complete example, see https://github.com/capnproto/capnproto-rust/tree/master/capnp-rpc/examples/calculator
Modules
rpc_capnp | Code generated from [rpc.capnp] (https://github.com/sandstorm-io/capnproto/blob/master/c%2B%2B/src/capnp/rpc.capnp). |
rpc_twoparty_capnp | Code generated from [rpc-twoparty.capnp] (https://github.com/sandstorm-io/capnproto/blob/master/c%2B%2B/src/capnp/rpc-twoparty.capnp). |
twoparty | An implementation of |
Macros
pry | Like |
Structs
Disconnector | A |
ImbuedMessageBuilder | |
RpcSystem | A portal to objects available on the network. |
Traits
Connection | |
IncomingMessage | |
OutgoingMessage | |
VatNetwork |
Functions
new_client | Creates a new local RPC client of type |
new_promise_client | Converts a promise for a client into a client that queues up any calls that arrive before the promise resolves. |