Crates.io | tokio-nsq |
lib.rs | tokio-nsq |
version | 0.14.0 |
source | src |
created_at | 2020-07-27 04:30:03.717638 |
updated_at | 2023-06-28 02:56:38.603515 |
description | A Rust NSQ client built on Tokio. Tokio NSQ aims to be a feature complete NSQ client implementation. |
homepage | |
repository | https://github.com/harporoeder/tokio-nsq |
max_upload_size | |
id | 269975 |
size | 100,832 |
A Rust NSQ client built on Tokio. Tokio NSQ aims to be a feature complete NSQ client implementation.
Tokio NSQ is available as a cargo package, and API documentation is available on docs.rs.
This project follows strict semantic versioning. While pre 1.0.0
breaking changes have only a minor version bump.
let topic = NSQTopic::new("names").unwrap();
let channel = NSQChannel::new("first").unwrap();
let mut addresses = HashSet::new();
addresses.insert("http://127.0.0.1:4161".to_string());
let mut consumer = NSQConsumerConfig::new(topic, channel)
.set_max_in_flight(15)
.set_sources(
NSQConsumerConfigSources::Lookup(
NSQConsumerLookupConfig::new().set_addresses(addresses)
)
)
.build();
let mut message = consumer.consume_filtered().await.unwrap();
let message_body_str = std::str::from_utf8(&message.body).unwrap();
println!("message body = {}", message_body_str);
message.finish();
let topic = NSQTopic::new("names").unwrap();
let mut producer = NSQProducerConfig::new("127.0.0.1:4150").build();
// Wait until a connection is initialized
assert_matches!(producer.consume().await.unwrap(), NSQEvent::Healthy());
// Publish a single message
producer.publish(&topic, b"alice1".to_vec()).unwrap();
// Wait until the message is acknowledged by NSQ
assert_matches!(producer.consume().await.unwrap(), NSQEvent::Ok());