1 个不稳定版本
使用旧的 Rust 2015
0.0.1 | 2014年12月13日 |
---|
#354 在 #toolkit
22KB
444 代码行,不含注释
spread-rs
Spread 工具包的 Rust 客户端库。
Spread 是一个提供高性能消息服务的工具包,该服务能够抵御外部或内部网络故障。更多信息请访问 spread.org。
项目状态
此库是 Spread 客户端协议的简化实现。它支持 Spread API 的六个基本调用
- 连接到守护进程
- 从守护进程中断连接
- 加入一个组
- 离开一个组
- 多播一条消息
- 接收一条消息
目前未实现其他功能(例如,没有超出简单可靠多播的消息类型、服务质量、连接优先级、非空认证等)。
构建用法
spread-rs
只有一个外部库依赖项,即 rust-encoding。
构建
$ cargo build
测试
$ cargo test
生成文档
$ cargo doc
API 使用
连接到本地端口 4803 上运行的 Spread 守护进程
extern crate spread;
use std::io::net::ip::SocketAddr;
let socket_addr =
from_str::<SocketAddr>("127.0.0.1:4803").expect("malformed address");
let client = spread::connect(socket_addr, "test_user", false)
.ok().expect("failed to create client");
加入一个组并多播一条消息
client.join("foo_group".as_slice());
client.multicast(["foo_group"], "hello".as_bytes());
在收到消息时阻塞,打印内容,然后离开并断开连接
let msg = client.receive().ok().expect("receive failed");
println!("sender: {}", msg.sender);
println!("groups: {}", msg.groups);
println!("data: {}", msg.data);
client.leave("foo_group".as_slice());
client.disconnect();
依赖项
~2MB
~30K SLoC