Skip to content

novafacing/qemu-rs

Repository files navigation

QEMU-RS

QEMU for Rust, and Rust for QEMU!

Crates

This repository provides several QEMU-related crates:

The crates work together to enable building QEMU utilities in Rust and running QEMU from Rust code in a machine-specified way.

Try it Out

To see what the crate can do, trace the execution (including syscalls, memory accesses, and instructions) of a program like:

cargo run -r --bin tracer -- -a /bin/ls -- -lah

Installing QEMU

This repository also provides a crate (qemu) which builds QEMU from source and installs Rust wrappers for QEMU as binaries.

You can install QEMU with (add any additional features you need, e.g. plugins):

cargo install qemu@9.0.0-v0  --features=binaries

On some systems, particularly BTRFS systems, /tmp may not be large enough for the temporary build directory (QEMU is quite large to build). In this case, create a directory on your root filesystem (e.g. $HOME/.cargo/tmp) and set CARGO_TARGET_DIR=$HOME/.cargo/tmp when running the install command.