NATS Streaming client wrapper built on top of NATS.rs
Just a very early prototype.
Supports publishing and basic subscription.
```rust use nats; use std::{io, str::from_utf8};
fn main() -> io::Result<()> { let nc = nats::connect("nats://127.0.0.1:4222")?; let sc = stan::connect(nc, "test-cluster", "rust-client-1")?;
sc.publish("foo", "hello from rust 1")?;
let sub1 = sc
.subscribe("foo", Default::default())?
.with_handler(|msg| {
println!("sub1 got {:?}", from_utf8(msg.data));
msg.ack()?;
println!("manually acked!");
Ok(())
});
sc.subscribe("foo", Default::default())?
.with_handler(|msg| {
println!("sub 2 got {:?}", from_utf8(msg.data));
Ok(())
});
sc.publish("foo", "hello from rust 2")?;
sc.publish("foo", "hello from rust 3")?;
sub1.unsubscribe()?;
sc.publish("foo", "hello from rust 4")?;
Ok(())
} ```
toml
[dependencies]
nats = "0.9.7"
stan = "0.0.9"
To start a local nats streaming server for testing:
docker run -p 4222:4222 -p 8222:8222 nats-streaming