5个版本
0.0.7 | 2020年3月18日 |
---|---|
0.0.6 | 2019年12月16日 |
0.0.5 | 2019年7月18日 |
0.0.4 | 2019年5月22日 |
0.0.3 | 2019年4月28日 |
#19 in #nats
36KB
788 行
NATS客户端
一个简单、面向开发者的NATS客户端,具有舒适易用的API,旨在让您在任何地方使用此客户端,无论是使用tokio
还是单线程应用程序或传统的多线程。
用法
以下示例说明了基本的发布和订阅功能
let jwt = "...";
let seed = "...";
let opts = ClientOptions::builder()
.cluster_uris(vec!["nats://localhost:4222".into()])
.authentication(AuthenticationStyle::UserCredentials(
jwt.to_string(),
seed.to_string(),
))
.build()?;
let client = Client::from_options(opts)?;
client.connect()?;
client.subscribe("ticker", move |msg| {
let symbol: SymbolReply = serde_json::from_slice(&msg.payload).unwrap();
info!("Received stock ticker: {:?}", symbol);
Ok(())
})?;
要发布消息
c.publish(&r, payload_bytes, None)?;
并利用请求/响应模式
let reply = client.request(
"symbolquery",
r#"{"symbol": "NATS"}"#.as_bytes(),
Duration::from_millis(100),
)?;
let symbol: SymbolReply = serde_json::from_slice(&reply.payload).unwrap();
info!("Stock symbol response: {:?}", symbol);
功能
以下是目前此客户端支持的和计划支持的功能列表
- - 请求/回复
- - 订阅
- - 发布
- - 所有认证模型,包括NATS 2.0 JWT和种子密钥
- - 遵守v1协议,接受NATS发送的新服务器信息
- - 连接失败时自动重连
- - TLS支持
- - NATS流(STAN)
依赖项
~12MB
~248K SLoC