Crate tmq

Source
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.
SocketBuilder
Builder which provides bind and connect 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§

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.
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>.