Skip to main content

Crate hermes_broker_client

Crate hermes_broker_client 

Source
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).