muvirt aims to provide a reasonably fast x86_64 and arm64 virtual machine that can run inside a web browser or on platforms without hardware virtualization support (currently supports Linux, OSX & Windows). The current implementation leverages and extends several QEMU components (such as TCG / Tiny Code Generator), though some of these could be replaced over time.
- Support x86_64 and arm64 targets
- Deliver good enough performance without relying on hardware virtualization
- Run unmodified linux guest systems
- Run unmodified standalone linux user-mode programs
- Web support
- Add hardware virtualization support (KVM / HVF / HPV)
- Support for building and running containers
- Support for the devcontainer specification
- Support for AI agents by providing a MCP server
- Easy to use (standalone or as a library)
- Recent rust compiler toolchain (Edition 2024)
- clang compiler
- gdb
cargo run
Note: The project is setup to use gdb to debug the running binary which has some negative performance impact
and might in fact prevent the linux kernel booting if the host system under which muvirt runs has constrained resources (only 1 or 2 cores). Workarounds for this are to remove the custom runner command in .cargo/config.toml that uses gdb and also run a release build cargo run --release