#broadcast-channel #channel #broadcast #lock-free #mpmc #no-std

已删除 blink-channel

快速、无锁、有界、多生产者、多消费者、有损、广播通道

1 个不稳定版本

0.1.0 2024年2月21日

#19 in #broadcast-channel

MIT 许可证

27KB
529

Blink-channel

check codecov

快速、无锁、有界、有损的 Rust 广播通道。

有时如果缓冲区中单个元素在读写操作上存在竞争,可能会使 CPU 自旋一段时间。对于小缓冲区,这种情况可能更常见。

它通过环形缓冲区和原子操作实现,这为我们提供了无锁行为,没有额外的依赖。

blink-channel 的 API 与 std::sync::mpsc 通道类似。但是,也有一些区别

  • 它允许多个消费者(接收者)和多个生产者(发送者)。
  • 通道将每个发送广播给每个消费者。
  • 有损的,发送者将覆盖旧数据,因此接收者必须快速,否则会丢失旧数据(不要闪烁)。
  • no_std 环境实现。

由于这种特性,它在数据快速到达且新数据总是比旧数据更重要(可以丢弃)的应用程序中很有用。例如,在实现音频驱动程序时,小的故障但保持最新比延迟的音频更好。

最低支持的 Rust 版本 (MSRV)

此包的最低支持的 Rust 版本是 1.60.0

许可证

MIT 许可证下授权 (LICENSEhttp://opensource.org/licenses/MIT)

依赖关系

~0–24MB
~331K SLoC