每月 23 个稳定版本

2.3.1 2024 年 5 月 16 日
2.2.1 2024 年 4 月 14 日
2.2.0 2024 年 2 月 8 日
2.1.1 2023 年 11 月 24 日
0.1.0 2019 年 5 月 6 日

并发 中排名第 8

Download history 787093/week @ 2024-05-03 875264/week @ 2024-05-10 854796/week @ 2024-05-17 858491/week @ 2024-05-24 921292/week @ 2024-05-31 912635/week @ 2024-06-07 877162/week @ 2024-06-14 905859/week @ 2024-06-21 856430/week @ 2024-06-28 890035/week @ 2024-07-05 923136/week @ 2024-07-12 971492/week @ 2024-07-19 991311/week @ 2024-07-26 1006402/week @ 2024-08-02 1078152/week @ 2024-08-09 1078666/week @ 2024-08-16

每月下载量 4,349,026
用于 6,314 个 Crates(直接使用 430 个)

Apache-2.0 OR MIT

41KB
568 行(不包括注释)

async-channel

Build License Cargo Documentation

一个异步多生产者多消费者通道,其中每条消息只能由现有消费者中的某一个接收。

通道有两种类型

  1. 有固定容量的有界通道。
  2. 无固定容量的无界通道。

通道有 SenderReceiver 两端。两端都是可复制的,可以在多个线程之间共享。

当所有 Sender 或所有 Receiver 都被丢弃时,通道变为关闭。当通道关闭时,不能再发送消息,但可以继续接收剩余的消息。

还可以通过调用 Sender::close()Receiver::close() 手动关闭通道。

示例

let (s, r) = async_channel::unbounded();

assert_eq!(s.send("Hello").await, Ok(()));
assert_eq!(r.recv().await, Ok("Hello"));

许可证

根据您的选择,许可协议为以下之一

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义的任何有意提交以包含在作品中的贡献,将根据上述协议双重许可,无需任何额外的条款或条件。

依赖项

~400KB