Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Rust API wrapping the ibverbs
RDMA library.
libibverbs
is a library that allows userspace processes to use RDMA "verbs" to perform
high-throughput, low-latency network operations.
A good place to start is to look at the programs in examples/
, and the upstream
C examples. You can test RDMA programs on modern Linux kernels even without specialized RDMA
hardware by using SoftRoCE.
For more information on RDMA verbs, see the InfiniBand Architecture Specification
vol. 1, especially chapter 11, and the RDMA Consortium's RDMA Protocol Verbs
Specification. See also the upstream libibverbs/verbs.h
file for the original C
definitions, as well as the manpages for the ibv_*
methods.
Library dependency
libibverbs
is usually available as a free-standing library package. It used to be
self-contained, but has recently been adopted into rdma-core
. cargo
will automatically
build the necessary library files and place them in vendor/rdma-core/build/lib
. If a
system-wide installation is not available, those library files can be used instead by copying
them to /usr/lib
, or by adding that path to the dynamic linking search path.
Hardware support
iWARP ethernet NICs support RDMA over hardware-offloaded TCP/IP, while InfiniBand is a general high-throughput, low-latency networking technology. InfiniBand host channel adapters (HCAs) and iWARP NICs commonly support direct hardware access from userspace (kernel bypass), and libibverbs supports this when available.
Thread safety
All interfaces are Sync
and Send
since the underlying ibverbs API is thread safe.