Crossfire: High-performance lockless spsc/mpsc/mpmc channels for Rust
4 months ago
- #lockless-channels
- #async-rust
- #performance
- 支持异步和阻塞上下文的高性能无锁通道(spsc/mpsc/mpmc)
- 基于crossbeam-queue实现底层操作
- V1.0版发布于2022年12月,V2.0版于2025年6月重构API,V2.1版于2025年9月优化性能
- V2.1版本移除了crossbeam-channel依赖以获得更好性能
- 提供detect_backoff_cfg()函数用于单核系统性能优化
- 可通过'cargo bench --bench crossfire'运行基准测试
- 在x86_64和arm架构上稳定运行,支持多种运行时(tokio、async-std、smol)
- 包含三个模块:spsc/mpsc/mpmc,每个模块提供不同通道类型(阻塞/异步/混合)
- 支持异步上下文中的取消安全操作,并能清理状态
- 启用'tokio'或'async_std'特性时可使用send_timeout()和recv_timeout()等附加功能
- 内存高效的SP/SC API实现完全无锁的唤醒注册机制
- 兼容tokio-1.x和async-std-1.x,运行时无关