Saturating 400 Gbps RNICs with Rust!

87 points lukedyue 5 comments

Hey folks,

we’ve been working on a new Rust wrapper for rdma-core, and we just finished benchmarking it: it can saturate a 400 Gbps RNIC (ConnectX-7) using a perftest-style tool we wrote.

If you're writing synchronous RDMA code in Rust and you're tired of:

  • Hand-rolling FFI over ibverbs-sys / rdma-core-sys
  • Fighting lifetimes over simple CQ / QP / MR ownership
  • Rebuilding rdma-core just to link a tiny binary

then sideway might be interesting. It gives you:

  • Rust-flavored wrappers over modern ibverbs (ibv_wr_*, ibv_start_poll, CQ/QP Ex)
  • A dlopen-based static library so you don’t have to vendor rdma-core
  • A basic but usable wrapper for librdmacm

We also built a perftest-style tool called stride and used it to show that "Rust + sideway" can hit line rate on a 400 Gbps link (including GDR WRITE with H100).

If you’re curious about the design, trade-offs (e.g. why we don’t try to make everything safe), error reporting, lifetimes vs Arc, and the perf numbers, I wrote up a longer post here:

Blog: https://rdma-rust.github.io/2025/11/16/why-another-rdma-wrapper/

And if you just want to jump straight into the code:

Happy to answer questions / take API feedback in the comments.