#zeromq #tokio #future

tokio-zmq

为Tokio事件循环上的ZeroMQ提供未来抽象

19个版本 (8个破坏性更新)

0.10.1 2019年6月18日
0.9.0 2018年12月23日
0.8.0 2018年11月16日
0.4.0-beta3 2018年4月6日
0.4.0-beta 2018年3月25日

#666 in 异步

每月45次下载
3 个crate中使用 (2个直接使用)

GPL-3.0 许可证

94KB
1.5K SLoC

Tokio ZMQ

本说明针对0.8分支,对于0.3版本的说明,请查看 这里

文档 crates.io

该crate包含Tokio运行时上的ZeroMQ概念包装器,带有未来。

当前支持的套接字

  • REP
  • REQ
  • PUB
  • SUB
  • PUSH
  • PULL
  • XPUB
  • XSUB
  • PAIR
  • DEALER
  • ROUTER

请参阅 示例文件夹 了解用法示例。

入门

futures = "0.1.25"
tokio = "0.1"
tokio-zmq = "0.10.1"
zmq = "0.9.1"

在您的应用程序中

use std::sync::Arc;

use futures::{Future, Stream};
use tokio_zmq::{prelude::*, Rep};

fn main() {
    let ctx = Arc::new(zmq::Context::new());
    let rep_fut = Rep::builder(ctx).bind("tcp://*:5560").build();

    let runner = rep_fut.and_then(|rep| {
        let (sink, stream) = rep.sink_stream(25).split();

        stream
            .map(|multipart| {
                // handle the Multipart
                // This example simply echos the incoming data back to the client.
                multipart
            })
            .forward(sink)
    });

    tokio::run(runner.map(|_| ()).or_else(|e| {
        println!("Error: {:?}", e);
        Ok(())
    }));
}

运行示例

req.rsrep.rs 示例设计为一起使用。 rep 示例使用REP套接字启动服务器,而 req 示例使用REQ套接字查询该服务器。

zpub.rssub.rs 示例应一起使用。zpub 产生值,而 sub 消费这些值。

push.rspull_push.rspull.rs 文件应一起使用。push 产生值,这些值通过 pull_push 传输到 pull,它消费这些值并向自己以及 pull_push 发送停止信号。

sync_pubsub.rsdealer_router.rsload_balancing_broker 都是自包含的,并启动多个线程。

贡献

请随意为任何您发现的问题打开问题。请注意,任何贡献的代码都将根据GPLv3许可证授权。

许可证

版权所有 © 2018 Riley Trautman

Tokio ZMQ是免费软件:您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或者(根据您的选择)任何较新版本。

Tokio ZMQ是根据希望它将是有用的,但没有任何保证;甚至没有关于适销性或适用于特定目的的暗示性保证。有关详细信息,请参阅GNU通用公共许可证。此文件是Tokio ZMQ的一部分。

您应该已经收到了Tokio ZMQ附带的GNU通用公共许可证副本。如果没有收到,请参阅https://gnu.ac.cn/licenses/

依赖项

~5MB
~99K SLoC