cannonball

Crates.iocannonball
lib.rscannonball
version0.2.6
sourcesrc
created_at2022-11-05 23:01:00.115066
updated_at2023-07-21 18:19:59.292718
descriptionQEMU tracing framework
homepage
repository
max_upload_size
id706179
size28,057
Rowan Hart (novafacing)

documentation

README

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!

asciicast

Commit count: 0

cargo fmt