9 releases (breaking)

Uses old Rust 2015

0.7.0 Jan 3, 2024
0.6.0 Nov 10, 2022
0.5.0 Aug 24, 2021
0.4.0 Mar 8, 2021
0.1.1 Jan 24, 2019

#105 in Unix APIs

Download history 2959/week @ 2023-12-20 1729/week @ 2023-12-27 3497/week @ 2024-01-03 3674/week @ 2024-01-10 3394/week @ 2024-01-17 3804/week @ 2024-01-24 4093/week @ 2024-01-31 4229/week @ 2024-02-07 4034/week @ 2024-02-14 4727/week @ 2024-02-21 5398/week @ 2024-02-28 4691/week @ 2024-03-06 3857/week @ 2024-03-13 4377/week @ 2024-03-20 3141/week @ 2024-03-27 2508/week @ 2024-04-03

14,559 downloads per month
Used in 15 crates (9 directly)

Apache-2.0

1MB
28K SLoC

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.

Dependencies