#toolkit #client #service

nightly spread

Rust 客户端库,用于 Spread 工具包

1 个不稳定版本

使用旧的 Rust 2015

0.0.1 2014年12月13日

#354#toolkit

MIT 许可证

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