6 releases
0.2.6 | Jul 21, 2023 |
---|---|
0.2.5 | Mar 26, 2023 |
0.2.3 | Nov 9, 2022 |
0.1.0 | Nov 5, 2022 |
#389 in Emulators
28KB
427 lines
Cannonball 💣
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!
Examples
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.
Documentation
Unfortunately, the documentation isn't building on docs.rs
. Something about building
the entirety of QEMU is busting their process limits a little! For now, you can build
and view local docs with:
cargo doc --open
Or, the source code is all doc-stringed up :)
Installation
Just add this to your Cargo.toml
:
cannonball = "0.2.3"
Example
Here's a quick recording of the Jaivana example plugin and driver!
Dependencies
~0–4.5MB
~84K SLoC