zeromq 0.6.0

A native Rust implementation of ZeroMQ
Documentation
mod async_helpers;
use std::error::Error;
use zeromq::prelude::*;

#[async_helpers::main]
async fn main() -> Result<(), Box<dyn Error>> {
    println!("Start forwarder");
    let mut frontend = zeromq::SubSocket::new();
    frontend.bind("tcp://127.0.0.1:30001").await?;

    let mut backend = zeromq::PubSocket::new();
    backend.bind("tcp://127.0.0.1:30002").await?;

    frontend.subscribe("").await?;

    let forward = async move {
        loop {
            let message = frontend.recv().await.unwrap();
            println!("passing message: {:?}", message);
            backend.send(message).await.unwrap();
        }
    };

    forward.await;

    Ok(())
}