One Rust core
The compositor lives in Rust. Hosts do not get a second compositor. Swift, Objective-C, Kotlin/JNI, and GTK call the same core. UniFFI still exists in src/ffi. It is not the only bridge.
v26.8.12 Open source MIT License
A native Wayland compositor for macOS, Android, and the iOS family.


Bundled ports are native. A VM or container Machine is planned for macOS, iOS, iPadOS, Android, and Linux. SSH plus waypipe is there today when you want another machine.
Free and open source. MIT-licensed. No paywall, no telemetry. Read the code, fork it, send a patch.
Store or sideload. Apple mobile and Play builds are meant to pass review. Sideload the IPA, APK, or dmg if you want. Desktop and LockScreen are coming soon on macOS and Android (iOS/iPadOS via repo.wawona.io only). anowaW is a separate planned app bridge — not Desktop, not MediaProjection.
Native, guest, or remote. Weston, Niri, and the catalog run as native ports. VMs and containers are planned Machine kinds. Remote Linux over SSH and waypipe works today. The compositor draws the clients either way.
How the compositor is put together.
The compositor lives in Rust. Hosts do not get a second compositor. Swift, Objective-C, Kotlin/JNI, and GTK call the same core. UniFFI still exists in src/ffi. It is not the only bridge.
Each Wayland client is a host window or scene, not a fake desktop in one framebuffer. macOS keeps AppKit chrome. iPadOS and visionOS open one scene per client. Phone, tvOS, and Android fill the primary surface. watchOS runs one client.
wwn-iland emulates DRM, KMS, and GBM in userspace. Mode A is the store path: static, in-window. Mode B is the macOS Desktop/LockScreen .dylib path (planned; SIP partial or off; desktop-host builds only). Drivers stay userland: MoltenVK, KosmicKrisp, ANGLE, SwiftShader.
Native port today; container or VM Machine kinds are planned; remote over waypipe. Weston and Niri ship on every target. Machines picks the display backend: auto, Wayland, or DRM. No environment variables.
Wawona is built by Alex Spaulding and anyone who wants to jump in. Chat, send a patch, or chip in if you can.
“Build bridges, not walls.”