RDMA-Rust: Why another RDMA wrapper
6 months ago
- #RDMA
- #Rust
- #High-Performance Networking
- Sideway 是一个基于 Rust 封装的 RDMA(远程直接内存访问)工具库,专为高性能同步 RDMA 应用设计。
- 它解决了现有 RDMA 封装库的常见痛点,如手动处理 FFI、复杂的生命周期管理以及不必要的依赖项。
- Sideway 为现代 ibverbs API(包括 ibv_wr_* 和 ibv_start_poll)提供了符合 Rust 风格的封装,并支持扩展的 CQ/QP 功能。
- 通过 dlopen 动态加载避免链接整个 rdma-core 库,降低了构建复杂度和依赖项。
- 性能测试表明 Sideway 能饱和 400 Gbps 的 RDMA 网卡带宽,与传统 C 语言工具(如 perftest)性能相当或更优。
- 采用分层设计:rdma-mummy-sys 提供原始 API 访问,Sideway 提供 Rust 友好封装,trespass(开发中)作为高层通信库。
- 专注于同步 RDMA 模式,避免复杂的异步集成,并通过 Arc 简化资源管理的生命周期问题。
- 该项目已向 rdma-core 上游贡献了错误修复,并包含大量单元测试和持续集成确保可靠性。
- 未来计划支持更多 RDMA 操作(UD、UC、原子操作)、线程域支持,以及完成 trespass 库的开发。
- 当前处于早期开发阶段(v0.Y.Z),但已用于构建 stride 等工具,并逐渐形成稳定的 API 设计。