An async STOMP client (and maybe eventually, server) for Rust, using the Tokio stack.
It aims to be fast and fully-featured with a simple streaming interface.
Sending a message to a queue.
```rust use futures::prelude::*; use tokiostomp2::client; use tokiostomp2::ToServer;
async fn main() -> Result<(), std::io::Error> { let mut conn = client::connect("127.0.0.1:61613", None, None).await.unwrap();
conn.send( ToServer::Send { destination: "queue.test".into(), transaction: None, headers: vec!(), body: Some(b"Hello there rustaceans!".to_vec()), } .into(), ) .await.expect("sending message to server"); Ok(()) } ```
Receiving a message from a queue.
```rust use futures::prelude::*; use tokiostomp2::client; use tokiostomp2::FromServer;
async fn main() -> Result<(), std::io::Error> { let mut conn = client::connect("127.0.0.1:61613", None, None).await.unwrap(); conn.send(client::subscribe("queue.test", "custom-subscriber-id")).await.unwrap();
while let Some(item) = conn.next().await { if let FromServer::Message { messageid,body, .. } = item.unwrap().content { println!("{:?}", body); println!("{}", messageid); } } Ok(()) } ```
For full examples, see the examples directory.
License: MIT