Python Bindings
Nox
The project uses Nox to facilite and automate the developer workflow. Please install this tool before you start
Running nox
without any argument will run the default sessions.
Generating the Wheels
Distributing a Python native extension compatible with many systems and a large set of Python interpreters is a challenging task.
The manylinux project comes to the rescue here.
The extension is built based on the manylinux2014
platform tag.
Generation of the wheels is managed by nox
and requires Docker
to build a custom manylinux2014 CentOS image, and
execute the script inside it.
To start the generation:
$ cd libmicrovmi/python
$ nox -r -s generate_wheels -- --features xen
you can activate more drivers
$ nox -r -s generate_wheels -- --features xen,kvm,virtualbox
and enable the release mode as well
nox -r -s generate_wheels -- --features xen --release
After the execution, the wheels will be available in libmicrovmi/python/dist/manylinux
.
Testing Volatility
Nox provides sessions to facilitate testing the volatility integration on a given driver.
For Xen:
nox -r -s test_volatility_xen -- vmi:///....
To list nox sessions:
nox -l