Crate rmp_ipc[−][src]
Expand description
This project provides an ipc server and client implementation using messagepack. All calls are asynchronous and event based. Client Example:
use rmp_ipc::IPCBuilder; // create the client let ctx = IPCBuilder::new() .address("127.0.0.1:2020") // register callback .on("ping", |ctx, event| Box::pin(async move { println!("Received ping event."); ctx.emitter.emit_response(event.id(), "pong", ()).await?; Ok(()) })) .build_client().await.unwrap(); // emit an initial event let response = ctx.emitter.emit("ping", ()).await.unwrap().await_reply(&ctx).await.unwrap(); assert_eq!(response.name(), "pong");
Server Example:
use rmp_ipc::IPCBuilder; // create the server IPCBuilder::new() .address("127.0.0.1:2020") // register callback .on("ping", |ctx, event| Box::pin(async move { println!("Received ping event."); ctx.emitter.emit_response(event.id(), "pong", ()).await?; Ok(()) })) .build_server().await.unwrap();
Modules
builder | |
client | |
context | |
error | |
error_event | |
server | |
stream_emitter |
Structs
Event | A container representing an event and underlying binary data. The data can be decoded into an object representation or read as raw binary data. |
IPCBuilder | A builder for the IPC server or client. |