Crates.io | rabbitmq-stream-client |
lib.rs | rabbitmq-stream-client |
version | 0.4.2 |
source | src |
created_at | 2021-09-16 19:42:36.868201 |
updated_at | 2024-02-16 08:05:30.310785 |
description | A Rust client for RabbitMQ Stream |
homepage | |
repository | https://github.com/rabbitmq/rabbitmq-stream-rust-client |
max_upload_size | |
id | 452461 |
size | 245,347 |
A Rust Client for RabbitMQ Stream Queues
Install from crates.io
[dependencies]
rabbitmq-stream-client = "*"
The main access point is Environment
, which is used to connect to a node.
use rabbitmq_stream_client::Environment;
let environment = Environment::builder().build().await?;
use rabbitmq_stream_client::Environment;
let tls_configuration: TlsConfiguration = TlsConfiguration::builder()
.add_root_certificates(String::from(".ci/certs/ca_certificate.pem"))
.build();
// Use this configuration if you want to trust the certificates
// without providing the root certificate
let tls_configuration: TlsConfiguration = TlsConfiguration::builder()
.trust_certificates(true)
.build();
let environment = Environment::builder()
.host("localhost")
.port(5551) // specify the TLS port of the node
.tls(tls_configuration)
.build()
use rabbitmq_stream_client::{Environment, types::Message};
let environment = Environment::builder().build().await?;
let producer = environment.producer().name("myproducer").build("mystream").await?;
for i in 0..10 {
producer
.send(Message::builder().body(format!("message{}", i)).build())
.await?;
}
producer.close().await?;
use rabbitmq_stream_client::{Environment};
use futures::StreamExt;
use tokio::task;
use tokio::time::{sleep, Duration};
let environment = Environment::builder().build().await?;
let mut consumer = environment.consumer().build("mystream").await?;
let handle = consumer.handle();
task::spawn(async move {
while let Some(delivery) = consumer.next().await {
println!("Got message {:?}",delivery);
}
});
// wait 10 second and then close the consumer
sleep(Duration::from_secs(10)).await;
handle.close().await?;
git clone https://github.com/rabbitmq/rabbitmq-stream-rust-client .
make build
To run tests you need to have a running RabbitMQ Stream node with a TLS configuration.
It is mandatory to use make rabbitmq-server
to create a TLS configuration compatible with the tests.
See the Environment
TLS tests for more details.
make rabbitmq-server
make test
make rabbitmq-server
make run-benchmark