Expand description
Client library for the Hermes message broker.
Provides Publisher for fire-and-forget message publishing and Subscriber
for receiving messages over a gRPC stream.
§Quick start
use hermes_broker_client::{connect, Publisher, Subscriber};
// Plaintext (dev / testing)
let channel = connect("http://[::1]:50051", None).await?;
// mTLS (production)
// let tls = hermes_broker_client::TlsConfig {
// ca_cert: std::fs::read("ca.pem")?,
// client_cert: std::fs::read("client.pem")?,
// client_key: std::fs::read("client-key.pem")?,
// };
// let channel = connect("https://[::1]:50051", Some(tls)).await?;
// Publish
let publisher = Publisher::new(channel.clone());
publisher.publish("orders.eu.created", &b"hello"[..]).await?;
// Subscribe
let mut subscriber = Subscriber::new(channel).await?;
subscriber.subscribe("orders.>", None).await?;
while let Some(msg) = subscriber.recv().await {
println!("{}: {:?}", msg.subject, msg.payload);
}Structs§
- Publisher
- A fire-and-forget publisher with automatic reconnection.
- Subscriber
- A subscriber that receives messages from the broker over a gRPC stream. Drop the subscriber to unsubscribe (closing the stream triggers cleanup).
- TlsConfig
- TLS configuration for mTLS connections.
Functions§
- connect
- Connect to a hermes broker and return a channel for creating publishers/subscribers.
- raw_
client - Create a raw gRPC client (useful for advanced usage).