# KVM
Rust interface to the KVM Hypervisor
![Build Status](https://travis-ci.org/dschatzberg/kvm.svg?branch=master)
![Downloads](https://img.shields.io/crates/d/kvm.svg)
![Version](https://img.shields.io/crates/v/kvm.svg)
![License](https://img.shields.io/crates/l/kvm.svg)
[Documentation](https://dschatzberg.github.io/kvm/)
Check out the [examples](https://github.com/dschatzberg/kvm/tree/master/examples)
General documentation for KVM can be found in the
[Kernel Documentation Tree](https://kernel.org/doc/Documentation/virtual/kvm/api.txt)
and through
[this LWN article by Josh Triplett](https://lwn.net/Articles/658511/)
## What is KVM?
Kernel-based Virtual Machine (KVM) is a Linux hypervisor which
provides an interface the hardware virtualization extensions of a
machine. In particular, using KVM, a userspace process can set up a
guest VM's address space, provide/receive I/O, and run a Virtual CPU.
## How is it different from QEMU?
QEMU is a userspace process which can use KVM to construct virtual
machines. QEMU is responsible for emulating a full suite of hardware
devices in order to execute a complete operating system. KVM only
provides the means to execute in a hardware enforced "sandbox." User
processes are responsible for the booting and device emulation.
## Requirements
Rust >= 1.2.0
## License
Apache 2.0