RDMA-Rust: Why another RDMA wrapper
5 days ago
- #RDMA
- #Rust
- #High-Performance Networking
- Sideway is a Rust wrapper for RDMA (Remote Direct Memory Access) designed for high-performance synchronous RDMA applications.
- It addresses common pain points in existing RDMA wrappers, such as manual FFI handling, complex lifetimes, and unnecessary dependencies.
- Sideway provides Rust-flavored wrappers over modern ibverbs APIs, including ibv_wr_* and ibv_start_poll, and supports Extended CQ/QP features.
- It uses dlopen to avoid linking the entire rdma-core library, reducing build complexity and dependencies.
- Performance benchmarks show Sideway can saturate a 400 Gbps RDMA NIC, matching or exceeding the performance of traditional C tools like perftest.
- The design is layered, with rdma-mummy-sys for raw API access, Sideway for Rust-friendly wrappers, and trespass (WIP) for a higher-level communication library.
- Sideway focuses on synchronous RDMA, avoiding complex async integration, and uses Arc for resource management to simplify lifetimes.
- The project has contributed bug fixes to the rdma-core upstream and includes extensive unit tests and CI for reliability.
- Future plans include support for more RDMA operations (UD, UC, atomic operations), thread domain support, and completing the trespass library.
- Sideway is currently in early development (v0.Y.Z) but is being used to build tools like stride, with a stable API design emerging.