# hypervisor-rs [](https://crates.io/crates/hypervisor) [](https://github.com/saurvs/hypervisor-rs/blob/master/LICENSE.md)
`hypervisor` is a Rust library that enables hardware-accelerated execution of
virtual machines using OS X as a guest.
It binds to the `Hypervisor` framework available on OS X Yosemite or newer,
and exposes a safe Rust interface through the `hypervisor::osx` module, and an
unsafe foreign function interface through the `hypervisor::osx::ffi` module.
[Documentation](https://saurvs.github.io/hypervisor-rs/)
## Prerequisites
To use this library, you need
* OS X Yosemite (10.10) or newer
* an Intel processor with the VT-x feature set that includes Extended Page
Tables (EPT) and Unrestricted Mode. To verify this, run and expect the following
in your Terminal:
```shell
$ sysctl kern.hv_support
kern.hv_support: 1
```
## Usage
* Add the dependency ```hypervisor``` in your ```Cargo.toml```
```toml
[dependencies]
hypervisor = "0.0.1"
```
* Include the crate ```hypervisor``` in your code
```rust
extern crate hypervisor;
use hypervisor::osx::*;
```
* Create a virtual machine that executes for a finite time (doing nothing useful)
```rust
create_vm();
let vcpu = vCPU::new().unwrap();
vcpu.run();
println!("vcpu execution time: {:?}ns", vcpu.exec_time().unwrap());
vcpu.destory();
destory_vm();
```
## Status
*A lot is left to be done.*