mirror of https://github.com/Trivernis/bromine.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trivernis 6e5b5f01b1 | 3 years ago | |
---|---|---|
.github/workflows | 4 years ago | |
src | 3 years ago | |
.gitignore | 3 years ago | |
Cargo.lock | 3 years ago | |
Cargo.toml | 3 years ago | |
LICENSE | 4 years ago | |
README.md | 3 years ago |
README.md
rmp-ipc
Interprocess Communication via TCP using Rust MessagePack.
Usage
Client:
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.");
Ok(())
}))
.build_client().await.unwrap();
// emit an initial event
let response = ctx.emitter.emit("ping", ()).await?.await_response(&ctx).await?;
Server:
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.");
Ok(())
}))
.build_server().await.unwrap();
Namespaces
Client:
use rmp_ipc::IPCBuilder;
// create the client
let ctx = IPCBuilder::new()
.address("127.0.0.1:2020")
// register namespace
.namespace("mainspace-client")
// register callback
.on("ping", |_ctx, _event| Box::pin(async move {
println!("Received ping event.");
Ok(())
}))
.build()
.build_client().await.unwrap();
// emit an initial event
let response = ctx.emitter.emit_to("mainspace-server", "ping", ()).await?
.await_response(&ctx).await?;
Server:
use rmp_ipc::IPCBuilder;
// create the server
IPCBuilder::new()
.address("127.0.0.1:2020")
// register namespace
.namespace("mainspace-server")
// register callback
.on("ping", |_ctx, _event| Box::pin(async move {
println!("Received ping event.");
Ok(())
}))
.build()
.build_server().await.unwrap();
License
Apache-2.0