19 breaking releases
0.19.0 | Oct 23, 2024 |
---|---|
0.17.0 | Apr 23, 2024 |
0.16.0 | Jan 3, 2024 |
0.15.0 | Aug 8, 2023 |
0.0.1 | Feb 28, 2019 |
#98 in Unix APIs
36,375 downloads per month
Used in 11 crates
(9 directly)
330KB
4.5K
SLoC
kvm-ioctls
The kvm-ioctls crate provides safe wrappers over the KVM API, a set of ioctls used for creating and configuring Virtual Machines (VMs) on Linux. The ioctls are accessible through four structures:
Kvm
- wrappers over system ioctlsVmFd
- wrappers over VM ioctlsVcpuFd
- wrappers over vCPU ioctlsDeviceFd
- wrappers over device ioctls
For further details check the KVM API as well as the code documentation.
Supported Platforms
The kvm-ioctls can be used on x86_64, aarch64 and riscv64 (experimental).
Running the tests
Our Continuous Integration (CI) pipeline is implemented on top of Buildkite. For the complete list of tests, check our CI pipeline.
Each individual test runs in a container. To reproduce a test locally, you can use the dev-container on x86_64, arm64 and riscv64.
# For running riscv64 tests, replace v47 with v47-riscv. This provides an
# emulated riscv64 environment on a x86_64 host.
docker run --device=/dev/kvm \
-it \
--security-opt seccomp=unconfined \
--volume $(pwd)/kvm-ioctls:/kvm-ioctls \
rustvmm/dev:v47
cd kvm-ioctls/
cargo test
For more details about the integration tests that are run for kvm-ioctls
,
check the rust-vmm-ci readme.
Dependencies
~1.5MB
~38K SLoC