7个版本 (4个重大更新)

0.5.0 2023年8月24日
0.4.0 2023年2月28日
0.3.0 2022年3月23日
0.2.1 2021年12月24日
0.1.0-dev.12021年4月27日

#510 in 异步

Download history • Rust 包仓库 116/week @ 2024-04-15 • Rust 包仓库 169/week @ 2024-04-22 • Rust 包仓库 100/week @ 2024-04-29 • Rust 包仓库 70/week @ 2024-05-06 • Rust 包仓库 87/week @ 2024-05-13 • Rust 包仓库 98/week @ 2024-05-20 • Rust 包仓库 111/week @ 2024-05-27 • Rust 包仓库 89/week @ 2024-06-03 • Rust 包仓库 106/week @ 2024-06-10 • Rust 包仓库 92/week @ 2024-06-17 • Rust 包仓库 86/week @ 2024-06-24 • Rust 包仓库 19/week @ 2024-07-01 • Rust 包仓库 40/week @ 2024-07-08 • Rust 包仓库 112/week @ 2024-07-15 • Rust 包仓库 141/week @ 2024-07-22 • Rust 包仓库 169/week @ 2024-07-29 • Rust 包仓库

每月462次下载
10个crate中使用(通过bonsaidb-core

MIT/Apache

21KB
411 代码行

Circulate

crate version Live Build Status Documentation for main branch

Circulate是一个轻量级的发布/订阅框架,支持异步和非异步代码。该项目是为BonsaiDb编写的。虽然BonsaiDb的异步依赖于tokio,但这个crate由于出色的crate flume而与运行时无关。

异步示例

let relay = Relay::default();
let subscriber = relay.create_subscriber();

subscriber.subscribe_to(&"some topic")?;

relay.publish(&"some topic", &AnySerializableType)?;

let message = subscriber.receiver().recv_async().await?;
println!(
    "Received message on topic {}: {:?}",
    message.topic::<String>()?,
    message.payload::<AnySerializableType>()?
);

同步示例

let relay = Relay::default();
let subscriber = relay.create_subscriber();

subscriber.subscribe_to(&"some topic")?;

relay.publish(&"some topic", &AnySerializableType)?;

let message = subscriber.receiver().recv()?;
println!(
    "Received message on topic {}: {:?}",
    message.topic::<String>()?,
    message.payload::<AnySerializableType>()?
);

开源许可

本项目,如同Khonsu Labs的所有项目一样,是开源的。此仓库可在MIT许可证Apache许可证2.0下获得。

有关贡献的更多信息,请参阅CONTRIBUTING.md

依赖

~2.2–8MB
~67K SLoC