This project has been superceded by the qemu-plugin bindings provided by the qemu-rs project.
Cannonball is a framework for building QEMU plugins in Rust! Anything you can do in
a QEMU TCG plugin in C, you can do with cannonball
.
Write plugins that run with minimal overhead and as much functionality as you can dream of!
There are a couple examples provided here!
jaivana
A simple tracer that logs a configurable set of events to a file or stdout.mons meg
A tracer that logs the same events as Jaivana, but uses Tokio to run the trace in an async environment, with communication with the host over a UNIX socket instead of anonymous pipes.
Take a look at them, they are the best way to learn how to use this framework.
Just add this to your Cargo.toml
:
cannonball = "0.2.4"
Here's a quick recording of the Jaivana example plugin and driver!