• Stars
    star
    113
  • Rank 310,115 (Top 7 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created almost 6 years ago
  • Updated 8 months ago

Reviews

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

Repository Details

Crates.io

kvm-bindings

Rust FFI bindings to KVM, generated using bindgen. It currently has support for the following target architectures:

  • x86_64
  • arm
  • arm64

The bindings exported by this crate are statically generated using header files associated with a specific kernel version, and are not automatically synced with the kernel version running on a particular host. The user must ensure that specific structures, members, or constants are supported and valid for the kernel version they are using. For example, the immediate_exit field from the kvm_run structure is only meaningful if the KVM_CAP_IMMEDIATE_EXIT capability is available. Using invalid fields or features may lead to undefined behaviour.

Usage

First, add the following to your Cargo.toml:

kvm-bindings = "0.3"

Next, add this to your crate root:

extern crate kvm_bindings;

This crate also offers safe wrappers over FAM structs - FFI structs that have a Flexible Array Member in their definition. These safe wrappers can be used if the fam-wrappers feature is enabled for this crate. Example:

kvm-bindings = { version = "0.3", features = ["fam-wrappers"]}

Dependencies

The crate has an optional dependency to vmm-sys-util when enabling the fam-wrappers feature.

More Repositories

1

community

rust-vmm community content
459
star
2

vm-virtio

virtio implementation
Rust
370
star
3

vm-memory

Virtual machine's guest memory crate
Rust
310
star
4

kvm-ioctls

Rust
269
star
5

linux-loader

Linux kernel loader
Rust
190
star
6

vmm-reference

A VMM implementation based of rust-vmm components
Rust
147
star
7

vhost

Rust
126
star
8

vmm-sys-util

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

vhost-device

'vhost-user' device backends workspace
Rust
69
star
10

seccompiler

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

rust-vmm-container

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

event-manager

Rust
45
star
13

vm-device

Rust
36
star
14

mshv

Crates for Microsoft Hypervisor ioctls and bindings
Rust
32
star
15

vm-superio

Emulation for legacy devices
Rust
30
star
16

vm-allocator

Provides allocations and release strategies for resources used during the lifetime of a VM.
Rust
30
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
14
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
4
star
31

vm-pci

Rust
2
star
32

io-rate-limiter

Rust
1
star
33

.github

1
star