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). Wawona Swinging Bridge is a separate planned app bridge (formerly anowaW). 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 fully disabled with csrutil disable, not partial; 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.
Search for packages you can install in Wawona. If you installed Wawona from the App Store or Play, use store-safe wasm (wpm) only. Jailbroken iOS uses Sileo debs (rootless and rootful). Sideloaded Android uses Termux debs. Termux is not jailbreak and not Play. Two catalogs. Never one list.
App Store / Play: wasm + wpm only. Jailbroken iPhone and iPad: Sileo. Sideloaded Android: Termux (not jailbreak). How to install
“Build bridges, not walls.”