19个版本 (8个破坏性更新)
0.10.1 | 2019年6月18日 |
---|---|
0.9.0 | 2018年12月23日 |
0.8.0 | 2018年11月16日 |
0.4.0-beta3 |
|
0.4.0-beta |
|
#666 in 异步
每月45次下载
在 3 个crate中使用 (2个直接使用)
94KB
1.5K SLoC
Tokio ZMQ
本说明针对0.8分支,对于0.3版本的说明,请查看 这里
该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.rs
和 rep.rs
示例设计为一起使用。 rep
示例使用REP套接字启动服务器,而 req
示例使用REQ套接字查询该服务器。
zpub.rs
和 sub.rs
示例应一起使用。zpub
产生值,而 sub
消费这些值。
push.rs
、pull_push.rs
和 pull.rs
文件应一起使用。push
产生值,这些值通过 pull_push
传输到 pull
,它消费这些值并向自己以及 pull_push
发送停止信号。
sync_pubsub.rs
、dealer_router.rs
和 load_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