Expand description
§TMQ - Rust ZeroMQ bindings for Tokio
This crate bridges Tokio and ZeroMQ to allow for ZeroMQ in the async world.
§Currently Implemented Sockets
- Request/Reply
- Publish/Subscribe
- Dealer/Router
- Push/Pull
§Usage
Usage is made to be simple, but opinionated. See the examples/
Directory for some examples.
§Publish Example
To publish messages to all connected subscribers, you can use the publish
function:
use tmq::{publish, Context, Result};
use futures::SinkExt;
use log::info;
use std::env;
use std::time::Duration;
use tokio::time::sleep;
#[tokio::main]
async fn main() -> Result<()> {
let mut socket = publish(&Context::new()).bind("tcp://127.0.0.1:7899")?;
let mut i = 0;
loop {
i += 1;
socket
.send(vec!["topic", &format!("Broadcast #{}", i)])
.await?;
sleep(Duration::from_secs(1)).await;
}
}
Modules§
- dealer
- Dealer Sockets
- pair
- Pair Sockets
- publish
- Publish Sockets
- pull
- Pull Sockets
- push
- Push Sockets
- request_
reply - Request/Reply Sockets
- router
- Router Sockets
- subscribe
- Subscribe Sockets
Structs§
- Context
- Handle for a 0MQ context, used to create sockets.
- Message
- Holds a 0MQ message.
- Multipart
- ZMQ multipart which holds individual messages.
- Socket
Builder - Builder which provides
bind
andconnect
methods to build a corresponding ZMQ socket as per the standard functions
Enums§
- TmqError
- Internal re-exports Error that can occur during an async ZMQ operation.
Traits§
- AsZmq
Socket - Trait for various ZMQ socket wrappers.
- Socket
Ext - Trait which defines configuration functions for ZMQ sockets.
Functions§
- dealer
- Create a builder for a DEALER socket.
- pair
- Create a builder for a PAIR socket.
- publish
- Create a builder for a PUB socket.
- pull
- Create a builder for a PULL socket.
- push
- Create a builder for a PUSH socket.
- reply
- Create a builder for a REP socket
- request
- Create a builder for a REQ socket
- router
- Create a builder for a ROUTER socket.
- subscribe
- Create a builder for a SUB socket.
Type Aliases§
- Result
- Shortcut for
Result<T, tmq::TmqError>
.