tokio-zmq 0.10.1

Provides Futures abstractions for ZeroMQ on the Tokio event-loop
Documentation
use std::sync::Arc;

use futures::{
    future::Future,
    stream::{Stream},
};
use tokio::runtime::current_thread;
use tokio_zmq::{prelude::*, Dealer};

fn main() {
    std::env::set_var("RUST_LOG", "tokio_zmq=trace");
    env_logger::init();

    let socket = Dealer::builder(Arc::new(zmq::Context::new()))
        .connect("ipc:///tmp/lost-send")
        .build()
        .wait()
        .unwrap();
    let (_, stream) = socket.sink_stream(8192).split();

    let process = stream.fold(1, |count, _| {
            if count % 100 == 0 {
                println!("{}", count);
            }
            Ok(count + 1) as Result<_, zmq::Error>
        });

    current_thread::Runtime::new()
        .unwrap()
        .spawn(process.map(|_| ()).map_err(|_| panic!()))
        .run()
        .unwrap();
}