virt 0.1.8

Rust bindings to the libvirt C library
Documentation

This crate provides a Rust bindings to the libvirt C library

The binding tries to be a fairly direct mapping of the underling C API with some differences to respect Rust conventions.

Important considerations

Make sure to have libvirt-dev or libvirt-devel package (or the development files otherwise somewhere in your include path).

The library is still under development and the API is not quite stable yet.

The binding uses standard errors handling from Rust. Each method (there are some exceptions) is returning a type Option or Result.

Documentation

Testing/Exercises

CI is executing tests automatically from libvirt 1.2.0 to 2.5.0. Using Rust from stable, beta to nightly.

For executing tests and other excerices.

cargo test --verbose --

Integration tests are using real connection for example integration_qemu is using a qemu:///system connection. They are all ignored by default.

cargo test --verbose -- --ignored

For executing examples

cargo run --example hello -- test:///default

Contributing

Any bug fixes and other improvements are welcome at any time. It's possible to look at what is missing by running command like:

$ python tools/api_tests.py virDomain
{'file': 'libvirt-domain', 'name': 'virDomainMigrateSetMaxSpeed', 'module': 'libvirt-domain'}
{'file': 'libvirt-domain', 'name': 'virDomainRef', 'module': 'libvirt-domain'}
{'file': 'libvirt-domain', 'name': 'virDomainGetMemoryParameters', 'module': 'libvirt-domain'}
...