Hyperlane广播库
2025年8月22日大约 1 分钟hyperlane-broadcast
hyperlane-broadcast 是对 Tokio 广播通道的一个轻量级且符合人体工程学的封装,旨在为异步 Rust 应用程序提供易于使用的发布-订阅消息传递。它通过提供一个直接的接口,以最少的样板代码向多个订阅者广播消息,
安装方式
你可以使用如下命令添加依赖:
cargo add hyperlane-broadcast
使用示例
use hyperlane_broadcast::*;
let broadcast: Broadcast<usize> = Broadcast::new(10);
let mut rec1: BroadcastReceiver<usize> = broadcast.subscribe();
let mut rec2: BroadcastReceiver<usize> = broadcast.subscribe();
broadcast.send(20).unwrap();
assert_eq!(rec1.recv().await, Ok(20));
assert_eq!(rec2.recv().await, Ok(20));
let broadcast_map: BroadcastMap<usize> = BroadcastMap::new();
broadcast_map.insert("a", 10);
let mut rec1: BroadcastMapReceiver<usize> = broadcast_map.subscribe("a").unwrap();
let mut rec2: BroadcastMapReceiver<usize> = broadcast_map.subscribe("a").unwrap();
let mut rec3: BroadcastMapReceiver<usize> =
broadcast_map.subscribe_or_insert("b", DEFAULT_BROADCAST_SENDER_CAPACITY);
broadcast_map.send("a", 20).unwrap();
broadcast_map.send("b", 10).unwrap();
assert_eq!(rec1.recv().await, Ok(20));
assert_eq!(rec2.recv().await, Ok(20));
assert_eq!(rec3.recv().await, Ok(10));
开源协议
本项目采用 MIT 许可证。
贡献指南
我们欢迎任何形式的贡献!如有建议或想法,请通过 issue 或 pull request 提交。
联系方式
如有任何问题,欢迎联系作者:[email protected]。