Getting Started
Getting Started
Project status, expectations, and the shortest path into the codebase.
Wave VM is a local-first desktop application for creating and managing virtual machines. It is built with Tauri 2, a Rust backend, and a vanilla HTML, CSS, and JavaScript frontend. Direct QEMU integration is the virtualization path; libvirt is not a mandatory dependency.
The project is in active development. The inspected repository is at Milestone 2: First Real VM Lifecycle. It is not a complete virtual machine manager yet, and there is no public download.
Current status
The current build implements:
- A Tauri 2 desktop shell with a persistent multi-page frontend.
- Host diagnostics for the operating system, architecture, CPU count, memory, and application-data free space.
- QEMU and qemu-img discovery through bundled resources, PATH, and standard platform locations.
- QEMU version probing with a five-second timeout.
- Linux KVM verification by opening /dev/kvm and issuing KVM_GET_API_VERSION.
- VM definitions with validated names, memory, virtual CPU counts, guest architecture, and disk size.
- Thin-provisioned QCOW2 disk creation with protection against overwriting existing disks.
- QEMU launch with KVM when verified usable, or software emulation (TCG) as a fallback.
- Start and stop through a private QMP Unix socket, with process tracking and bounded termination fallbacks.
- A genuine guest console through QEMU WebSocket VNC and bundled noVNC, bound to loopback.
- Schema-v2 local configuration with atomic writes and restrictive Unix permissions.
What this build is not
What you can inspect today
Running the desktop application shows host readiness, saved machines, local storage, and application settings. You can create a machine definition, create its QCOW2 disk, start and stop a real QEMU process, and open the guest display while the machine is running.
The console is a real VNC connection to the running guest, not a screenshot or a simulated terminal. Because no guest operating system is installed by this build, a new machine may display only firmware output or a no-bootable-device message.
The lifecycle currently requires a Linux x86_64 host and supports x86_64 guests only. QEMU and qemu-img must be installed. KVM is optional; without a verified /dev/kvm, QEMU uses software emulation and may be slow.
Next steps
- Read Prerequisites for the required tools and optional QEMU/KVM dependencies.
- Follow Building from source to run the current desktop build.
- Read the virtual machine guide for the implemented creation workflow.
- See the roadmap for the next planned milestone and the evidence behind each status.