18 releases (breaking)

Uses new Rust 2024

new 0.13.0 Mar 3, 2026
0.12.0 Sep 19, 2025
0.11.0 May 12, 2025
0.9.0 Jan 31, 2025
0.1.0 Sep 29, 2022

#35 in Hardware support

Download history 1870/week @ 2025-11-14 1620/week @ 2025-11-21 1636/week @ 2025-11-28 1627/week @ 2025-12-05 1500/week @ 2025-12-12 852/week @ 2025-12-19 944/week @ 2025-12-26 770/week @ 2026-01-02 960/week @ 2026-01-09 1024/week @ 2026-01-16 1452/week @ 2026-01-23 1735/week @ 2026-01-30 2294/week @ 2026-02-06 1367/week @ 2026-02-13 2318/week @ 2026-02-20 2810/week @ 2026-02-27

9,008 downloads per month
Used in 28 crates (9 directly)

MIT license

455KB
9K SLoC

VirtIO-drivers-rs

crates.io page docs.rs page CI

VirtIO guest drivers in Rust. For no_std environment.

Support status

Device types

Device Supported
Block
Net
GPU
Input
Console
Socket
Sound
RNG
9P
...

Transports

Transport Supported
Legacy MMIO version 1
MMIO version 2
PCI Memory-mapped CAM only, e.g. aarch64 or PCIe ECAM

Device-independent features

Feature flag Supported
VIRTIO_F_INDIRECT_DESC Indirect descriptors
VIRTIO_F_EVENT_IDX avail_event and used_event fields
VIRTIO_F_VERSION_1 TODO VirtIO version 1 compliance
VIRTIO_F_ACCESS_PLATFORM Limited device access to memory
VIRTIO_F_RING_PACKED Packed virtqueue layout
VIRTIO_F_IN_ORDER Optimisations for in-order buffer usage
VIRTIO_F_ORDER_PLATFORM Platform ordering for memory access
VIRTIO_F_SR_IOV Single root I/O virtualization
VIRTIO_F_NOTIFICATION_DATA Extra data in device notifications

Examples & Tests

x86_64

cd examples/x86_64
make qemu

aarch64

cd examples/aarch64
make qemu

RISCV

cd examples/riscv
make qemu

hexagon

cd examples/hexagon
make qemu

You will see device info & GUI Window in qemu.

Dependencies

~0.9–1.5MB
~26K SLoC