• Stars
    star
    248
  • Rank 157,536 (Top 4 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created about 5 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Build Status crates.io

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 ioctls
  • VmFd - wrappers over VM ioctls
  • VcpuFd - wrappers over vCPU ioctls
  • DeviceFd - 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 and aarch64. Right now the aarch64 support is considered experimental. For a production ready version, please check the progress in the corresponding GitHub issue.

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 both x86 and arm64.

docker run --device=/dev/kvm \
           -it \
           --security-opt seccomp=unconfined \
           --volume $(pwd)/kvm-ioctls:/kvm-ioctls \
           rustvmm/dev:v16
cd kvm-ioctls/
cargo test

For more details about the integration tests that are run for kvm-ioctls, check the rust-vmm-ci readme.

More Repositories

1

community

rust-vmm community content
459
star
2

vm-virtio

virtio implementation
Rust
334
star
3

vm-memory

Virtual machine's guest memory crate
Rust
284
star
4

linux-loader

Linux kernel loader
Rust
174
star
5

vmm-reference

A VMM implementation based of rust-vmm components
Rust
143
star
6

vhost

Rust
121
star
7

kvm-bindings

Rust
113
star
8

vmm-sys-util

Helpers and utilities used by multiple rust-vmm components and VMMs
Rust
78
star
9

rust-vmm-container

Container with all dependencies required for running rust-vmm crates integration tests.
Shell
60
star
10

seccompiler

Provides easy-to-use Linux seccomp-bpf jailing.
Rust
58
star
11

vhost-device

'vhost-user' device backends workspace
Rust
56
star
12

event-manager

Rust
43
star
13

vm-device

Rust
36
star
14

vm-superio

Emulation for legacy devices
Rust
30
star
15

vm-allocator

Provides allocations and release strategies for resources used during the lifetime of a VM.
Rust
29
star
16

mshv

Crates for Microsoft Hypervisor ioctls and bindings
Rust
28
star
17

rust-vmm-ci

Python
18
star
18

vhost-user-backend

Deprecated repository, code now lives in: https://github.com/rust-vmm/vhost/
Rust
18
star
19

virtio-bindings

This crate is now part of the vm-virtio workspace: https://github.com/rust-vmm/vm-virtio
Rust
15
star
20

vfio-ioctls

Safe wrappers for VFIO
Rust
15
star
21

vfio

Rust
13
star
22

crate-template

This is the template used by all repositories which represent a crate. The purpose is to speed up the creation of new crates and keep the same standard in rust-vmm.
Rust
12
star
23

vfio-bindings

Rust
11
star
24

vm-fdt

Rust
11
star
25

acpi_tables

Rust
9
star
26

xen-sys

Rust
9
star
27

kvm

Rust
8
star
28

vmm-vcpu

7
star
29

kvm_wrapper

Deprecated. Use https://github.com/rust-vmm/kvm-bindings instead.
Rust
6
star
30

vfio-user

Rust
5
star
31

vm-pci

Rust
2
star
32

io-rate-limiter

Rust
1
star
33

.github

1
star