[−][src]Crate tmq
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::delay_for; #[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?; delay_for(Duration::from_secs(1)).await; } }
Modules
dealer | Dealer 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. |
SocketBuilder | Builder which provides |
Enums
TmqError | Error that can occur during an async ZMQ operation. |
Traits
AsZmqSocket | Trait for various ZMQ socket wrappers. |
SocketExt | Trait which defines configuration functions for ZMQ sockets. |
Functions
dealer | Create a builder for a DEALER 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 Definitions
Result | Shortcut for [ |