Getting Started
Prerequisites
Required tools, host libraries, and optional QEMU and KVM dependencies.
The desktop application and the website are independent projects. The desktop application has the larger set of native prerequisites; the website only needs Node.js and a package manager.
Desktop application
Required
- Rust stable and Cargo.
- Node.js 20 or newer and npm for the Tauri CLI.
- Tauri 2 Linux prerequisites: WebKitGTK 4.1, GTK 3, and libsoup 3.
- Build tools and pkg-config for compiling native dependencies.
- QEMU, including a system emulator for the host architecture and
qemu-img. Both are required to create disks and run a machine.
On Arch Linux, the relevant packages are webkit2gtk-4.1, gtk3, and libsoup3. Package names differ by distribution.
Console requirement
The guest console uses QEMU's WebSocket VNC transport and a bundled noVNC client. The installed QEMU must support WebSocket VNC. The current implementation was verified with QEMU 11.1.2, but no formal minimum QEMU version has been established.
Optional acceleration
A usable Linux KVM device at /dev/kvm enables hardware acceleration. The application verifies it by opening the device and issuing KVM_GET_API_VERSION. Without it, QEMU uses software emulation (TCG), which is functional but may be slow.
The lifecycle requires Linux x86_64
Supported host environments
Linux x86_64 is the only host environment exercised while building the current lifecycle. The Linux KVM probe is implemented. Source code contains QEMU discovery paths for other platforms, but macOS and Windows host behavior has not been verified. No support claim is made for those hosts.
The project must not be run as root. KVM access should be granted through the host's normal permission model; Wave VM does not modify group membership, device permissions, or system configuration.
Website
- Node.js 18.18 or newer.
- pnpm, which is the package manager used by the website lockfile.
Next
Continue with Building from source. If a required dependency is missing, see Troubleshooting.