#ring-buffer #ring #spsc #channel #producer-consumer

无 std ya-ring-buf

另一个环形缓冲区。SPSC 通道支持字节/Copy 直接访问。

1 个不稳定版本

0.1.0 2022年4月26日

#1139并发

MIT 许可证

64KB
1.5K SLoC

另一个环形缓冲区

由环形缓冲区支持的 SPSC 通道。

该通道针对发送和接收字节进行了优化 - 它具有多个功能,允许批量生产和使用项目。这使得它适合实现进程内管道流。然而,它也可以与其他类型一起使用。

功能包括

  • 无锁、非阻塞的推送和弹出,没有分配和 O(1) 时间。
  • 如果需要,可以集成阻塞、基于 future 或自定义等待。如果不需要,无操作等待者不增加开销。
  • view 函数用于安全地直接访问缓冲区,例如,直接从或向缓冲区进行 IO。
  • no_std 兼容(目前需要 alloc

不支持

  • 多个生产者或消费者。视图 API 会使其变得具有挑战性。如果您不介意没有并发性,可以将端点包装在 Mutex 中。
  • 动态调整大小

lib.rs:

另一个环形缓冲区。

由环形缓冲区支持的 SPSC 通道。

功能包括

  • 无锁、非阻塞推送和弹出。
  • 如果需要,可以集成阻塞、基于 future 或自定义等待。如果不需要,无操作等待者不增加开销。
  • veiw 函数用于安全地直接访问缓冲区,例如,直接从或向缓冲区进行 IO。
  • no_std 兼容(目前需要 alloc

依赖关系

~0–26MB
~328K SLoC