Features

What works now.
What comes next.

What works in the current build, what is partially implemented, and what remains a development target. Nothing is described as available unless the desktop implementation supports it.

Current build: Milestone 2. Machine definitions, QCOW2 disks, QEMU start and stop, QMP lifecycle control, and a loopback noVNC console are implemented. Guest operating system installation, networking, and machine editing are not.

Feature status

Available now

These capabilities exist in the current desktop build and are exercised by the Rust backend, the frontend, or both.

Desktop application shell

Available now

A Tauri 2 window with a persistent vanilla HTML, CSS, and JavaScript workspace. Dashboard, virtual machines, storage, installation media, and settings pages share host and machine state.

Evidence: Desktop READMEsrc-tauri/src/lib.rssrc/app.js

Host capability diagnostics

Available now

Reports the host operating system, architecture, logical CPU count, memory, and free space on the application data filesystem.

Evidence: host/mod.rshost/diagnostics.rs

QEMU and qemu-img discovery

Available now

Searches bundled resources, PATH, and standard platform locations, then probes each executable's version with a five-second timeout.

Evidence: qemu/discovery.rsqemu/probe.rs

Linux KVM verification

Available now

Opens /dev/kvm and issues KVM_GET_API_VERSION. The presence of the device alone is not treated as proof that acceleration is usable.

Current limit: Linux only. Windows and macOS acceleration detection is not implemented or verified.

Evidence: host/kvm.rs

Virtual machine definitions

Available now

Creates and persists local machine definitions with a validated name, x86_64 guest architecture, memory, virtual CPU count, and disk size. Definitions are stored in the schema-v2 configuration.

Current limit: Only x86_64 guests on Linux x86_64 hosts are accepted. Editing and deleting machine definitions are not implemented.

Evidence: commands/vm.rsvm/mod.rsvm/validate.rs

QCOW2 virtual disks

Available now

Creates a thin-provisioned QCOW2 disk with qemu-img under the machine's application data directory. An existing disk is never overwritten.

Current limit: Disks are blank. Resizing, deleting, attaching existing disks, and inspecting disk usage are not available.

Evidence: vm/disk.rscommands/vm.rs

Real QEMU process lifecycle

Available now

Starts QEMU with the configured memory, virtual CPUs, and disk. KVM is used only when its probe succeeds; otherwise QEMU uses software emulation (TCG). Stop uses QMP with bounded process-termination fallbacks.

Current limit: Start and stop are the only lifecycle controls. Pause, reset, snapshots, and networking are not implemented.

Evidence: vm/runtime.rscommands/vm.rsstate.rs

QMP runtime control

Available now

Connects to a private QEMU Machine Protocol socket over a Unix domain socket. The client performs the QMP handshake, queries runtime status, requests system powerdown, and falls back to quit.

Current limit: QMP is used only for the implemented start and stop path. It is not a general-purpose runtime control API for users.

Evidence: qmp.rsvm/runtime.rs

Interactive guest console

Available now

Displays the actual guest framebuffer through QEMU WebSocket VNC and the bundled noVNC 1.7.0 client. The listener is bound to 127.0.0.1, the WebSocket port is discovered through QMP, and a password is generated per run and kept in memory only.

Current limit: The console is available only while the machine is running and requires QEMU WebSocket VNC support. No guest operating system is installed by this build, so the display may show only firmware or a no-bootable-device message.

Evidence: vm-console-page.jsvm/runtime.rsbundled noVNC

Versioned local configuration

Available now

Writes schema-v2 config.json atomically in the platform application data directory. Schema versions 0 and 1 are migrated to version 2, which stores VM definitions. On Unix, directories use 0700 permissions and the configuration file uses 0600.

Evidence: config/store.rs

Local-only control boundary

Available now

No account, cloud service, or guest network device is part of the current build. QMP uses a private Unix socket, the console binds to loopback, and the Content Security Policy permits WebSocket connections only to 127.0.0.1.

Current limit: Linux x86_64 is the only exercised host. Windows and macOS behavior is unverified.

Evidence: capabilities/default.jsontauri.conf.jsonvm/runtime.rs

Feature status

In development

Partially implemented work. Each card states what exists and what is still missing.

Machine management

In development

Creating a machine and starting or stopping it are implemented. The interface shows saved definitions, disk presence, acceleration, lifecycle state, and backend errors.

Current limit: There is no interface for editing configuration, deleting a machine, resetting it, or taking snapshots. Existing disks and machine directories are preserved.

Evidence: virtual-machines-page.jsvm-details-page.js

Diagnostics and failure reporting

In development

Host warnings, typed application errors, QEMU log capture, probe timeouts, duplicate-launch prevention, and stale persisted state reconciliation exist.

Current limit: If the desktop process is force-killed, cleanup guarantees do not apply to an already running QEMU child process. Lifecycle recovery remains incomplete.

Evidence: host/mod.rserror.rsvm/runtime.rsstate.rs

Feature status

Planned

These are development targets. They are not present in the current desktop build and no dates or completion estimates are implied.

Installation media and guest installation

Planned

Select local ISO images, verify them when reliable checksum or signature data is available, attach them to a machine, and support a guest operating system installation workflow.

Current limit: No ISO selection, media catalogue, attachment, download, or guest OS installation exists. The current disk is blank.

Evidence: Desktop README limitations

Networking

Planned

Network capability detection and local VM network configuration without exposing unauthenticated control interfaces.

Current limit: QEMU is currently launched with no guest network device. No networking configuration exists.

Evidence: Desktop README limitations

Reset, pause, and snapshots

Planned

Additional lifecycle operations through QMP, including reset, pause or resume, and snapshot management where the QEMU configuration supports them.

Current limit: Only start and stop are implemented.

Evidence: Desktop README limitations

Editing and deleting machines

Planned

Change machine configuration and remove a machine definition, with a clear distinction between deleting the definition and deleting its disk files.

Current limit: No edit or delete workflow exists. Wave VM never removes VM disks automatically.

Evidence: Desktop README limitations

Cross-platform validation and packaging

Planned

Verify host behavior on macOS and Windows and produce installable platform packages.

Current limit: Linux x86_64 is the only exercised environment. macOS and Windows behavior is unverified, and no installer or packaged release exists.

Evidence: Desktop README limitations

Release preparation

Planned

Produce verified release artifacts, checksums, release notes, and support boundaries for an installable build.

Current limit: There is no installer, tagged release, checksum, or public download.

Evidence: Desktop README limitations

Feature status

Under consideration

Ideas that may be investigated later. They are not approved features, scheduled milestones, or support commitments.

Bundled QEMU distribution

Under consideration

Would remove the external QEMU prerequisite, but adds application size, licensing, update, and platform-packaging responsibilities.

Managed image catalogue and downloads

Under consideration

Would require trusted sources, verification data, download management, and ongoing maintenance. No catalogue or download service exists today.

Android host support

Under consideration

Mentioned as a possible long-term direction in the project guidance. No implementation, approval, or schedule exists.

Additional accelerator backends

Under consideration

Investigate Windows WHPX and macOS HVF detection. Neither is implemented or verified, and no support is claimed.

Evidence: Desktop README limitations

USB passthrough

Under consideration

Passing host USB devices into a guest is not implemented. It would need explicit device selection, permission handling, and security review.

Evidence: Desktop README limitations