Machnet Rust Bindings
This repository contains the Rust FFI bindings for Machnet.
Machnet provides an easy way for applications to reduce their datacenter networking latency via kernel-bypass (DPDK-based) messaging. Distributed applications like databases and finance can use Machnet as the networking library to get sub-100 microsecond tail latency at high message rates, e.g., 750,000 1KB request-reply messages per second on Azure F8s_v2 VMs with 61 microsecond P99.9 round-trip latency.
We support a variety of cloud (Azure, AWS, GCP) and bare-metal platforms, OSs, and NICs, evaluated in PERFORMANCE_REPORT.md.
Prerequisites
clang
is required to build the Rust bindings. You can install it using the following command:
&&
It also requires that libmachnet_shim.so
is built and installed on the system.
You can check out the Machnet repo for the details.
Use the build_shim.sh
to automatically build and install the libmachnet_shim.so
library.
Getting Started
To use the Machnet Rust bindings, add the following to your Cargo.toml
:
[]
= "0.1.9"
Demo
We have a simple msg_gen application that uses the Machnet stack. It is a message generator application that sends variable size messages to a server and receives them back.
For 1 kilobyte message sizes, Rust and C++ show almost identical latencies of 53 and 52 microseconds respectively, indicating their comparable and fast performance.
Open Source Project
This project is an open-source initiative under Microsoft. We welcome contributions and suggestions from the community! See CONTRIBUTING.md for more details.