#channel #message #mpmc #golang #select

无 std crossbeam-channel

多生产者多消费者通道,用于消息传递

30 个版本

0.5.13 2024 年 5 月 19 日
0.5.12 2024 年 2 月 28 日
0.5.11 2024 年 1 月 8 日
0.5.10 2023 年 12 月 24 日
0.1.1 2017 年 11 月 27 日

并发 中排名第 187

Download history 1271772/week @ 2024-05-03 1310949/week @ 2024-05-10 1385772/week @ 2024-05-17 1357740/week @ 2024-05-24 1533235/week @ 2024-05-31 1506862/week @ 2024-06-07 1458477/week @ 2024-06-14 1526669/week @ 2024-06-21 1438054/week @ 2024-06-28 1465716/week @ 2024-07-05 1487888/week @ 2024-07-12 1539160/week @ 2024-07-19 1513708/week @ 2024-07-26 1486111/week @ 2024-08-02 1518517/week @ 2024-08-09 1228596/week @ 2024-08-16

每月下载量 6,031,341
7,256 包中使用(直接使用 1,233 个)

MIT/Apache

360KB
6K SLoC

Crossbeam Channel

Build Status License Cargo Documentation Rust 1.60+ chat

此包提供了用于消息传递的多生产者多消费者通道。它是对 std::sync::mpsc 的替代,具有更多特性和更好的性能。

一些亮点

  • SenderReceiver 可以被克隆并在线程之间共享。
  • 主要有两种通道:boundedunbounded
  • 提供了一些方便的额外通道,如 afternevertick
  • select! 宏可以在多个通道操作上阻塞。
  • Select 可以在动态构建的通道操作列表上进行选择。
  • 通道非常少地使用锁,以实现最大的 性能

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
crossbeam-channel = "0.5"

兼容性

Crossbeam Channel 支持至少六个月前的稳定 Rust 版本,并且每次最低支持的 Rust 版本增加时,都会发布一个新的次要版本。目前,最低支持的 Rust 版本是 1.60。

许可证

根据以下任一许可证授权:

由您自行选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交的任何贡献,均应双许可如上所述,不附加任何额外条款或条件。

第三方软件

本产品包含第三方开发的软件的副本和修改

  • examples/matching.rs》包括Stefan Nilsson的《matching.go》,许可协议为Creative Commons Attribution 3.0 Unported License。

  • tests/mpsc.rs》包括Rust编程语言的代码修改,许可协议为MIT许可证和Apache许可证2.0版本。

  • tests/golang.rs》基于Go编程语言的代码,许可协议为3-Clause BSD许可证。

更多详细信息请参阅源代码文件。

第三方许可证的副本可在《LICENSE-THIRD-PARTY》中找到。

依赖项