Crates.io | machnet |
lib.rs | machnet |
version | 0.1.9 |
source | src |
created_at | 2024-02-19 22:37:05.317762 |
updated_at | 2024-02-22 02:43:51.166169 |
description | A Rust FFI bindings for Machnet |
homepage | |
repository | https://github.com/microsoft/machnet/tree/rust |
max_upload_size | |
id | 1145755 |
size | 109,071 |
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.
clang
is required to build the Rust bindings. You can install it using the following command:
sudo apt-get update && sudo apt-get install -y clang
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.
To use the Machnet Rust bindings, add the following to your Cargo.toml
:
[dependencies]
machnet = "0.1.9"
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.
This project is an open-source initiative under Microsoft. We welcome contributions and suggestions from the community! See CONTRIBUTING.md for more details.