/vroom

userspace nvme driver

Primary LanguageRust

vroom

vroom is a userspace NVMe driver written in Rust. It aims to be as fast as the SPDK NVMe driver, while minimizing unsafe code and offering a simplified API. vroom currently serves as a proof of concept.

My thesis contains some details about the implementation.

Build instuctions

You will need Rust, as well as its package manager cargo which you can install with:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Huge pages need to be enabled:

cd vroom
sudo ./setup-hugetlbfs.sh

To build the driver, as well as any examples run:

cargo build --release --all-targets

e.g. to run the hello world example (root rights are needed for DMA):

sudo ./target/release/examples/hello_world 0000:00:07.0

Disclaimer

This is by no means production-ready. Do not use it in critical environments. DMA may corrupt memory.

Related projects