10 个版本
使用旧的 Rust 2015
0.1.9 | 2018年11月13日 |
---|---|
0.1.8 | 2018年10月29日 |
0.1.1 | 2018年9月30日 |
#18 in #nats
在 3 crates 中使用
74KB
1.5K SLoC
Nitox - 基于 Tokio 的异步 NATS 客户端
描述
Nitox 是基于 tokio
的 NATS 客户端。我们编写它是因为现有的库是同步的,并不符合我们的需求。
目前缺少很多功能,所以请随时贡献并帮助我们构建最好的异步 NATS 客户端!
缺少的功能
- 找到一种方式来集成测试重连机制 - 但它已经被手动测试并且工作正常
- 自动修剪订阅,在 X 条消息后取消订阅 - 实际上是一个错误,因为流仍然保持开启状态,尽管处于睡眠状态
- 处理详细模式
- 处理严格模式 - 应该可以 OOB 工作,因为我们密切遵循协议(编辑:它确实可以)
- 将解析切换到使用
nom
- 我们不确定我们能否处理非常奇怪的客户端;我们现在可以很好地与官方客户端交谈 - 添加对 NATS Streaming 服务器支持 - 应该使用
prost
很容易,因为我们已经有了异步架构
在 tests/
文件夹中有一个小的额外内容,我们的一些集成测试依赖于一个用 tokio
实现的自定义 NATS 服务器,该服务器仅实现协议的一部分以满足我们的集成测试需求。
文档
安装
[dependencies]
nitox = "0.1"
用法
extern crate nitox;
extern crate futures;
use futures::{prelude::*, future};
use nitox::{NatsClient, NatsClientOptions, NatsError, commands::*};
fn connect_to_nats() -> impl Future<Item = NatsClient, Error = NatsError> {
// Defaults as recommended per-spec, but you can customize them
let connect_cmd = ConnectCommand::builder().build().unwrap();
let options = NatsClientOptions::builder()
.connect_command(connect_cmd)
.cluster_uri("127.0.0.1:4222")
.build()
.unwrap();
NatsClient::from_options(options)
.and_then(|client| {
// Makes the client send the CONNECT command to the server, but it's usable as-is if needed
client.connect()
})
.and_then(|client| {
// Client has sent its CONNECT command and is ready for usage
future::ok(client)
})
}
许可
根据以下任一许可
- Apache 许可证 2.0 版,(LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
为什么叫 "Nitox"
代表一氧化氮,一种在神经元之间通讯中发挥重要作用的化学物质;它与 NATS 的缩写密切相关,你可以向其背后的团队询问其含义!(或者查看 gnatsd
的 git 历史记录)
什么是 NATS
NATS 服务器是一个简单的、高性能的开源消息系统,用于云原生应用程序、物联网消息和微服务架构。
更多信息请访问 NATS.io
Yellow Innovation
Yellow Innovation 是法国邮政服务 La Poste 的创新实验室。
我们通过服务创造创新的用户体验和旅程,最近重点关注物联网。
依赖项
~8–17MB
~273K SLoC