The Wayland compositor
for every platform.
Wawona is a native, high-performance Wayland compositor for macOS, iOS, and Android. Built on a shared Rust core with direct Metal and Vulkan rendering — zero-copy, bare-metal speed, no VMs.
“Build Bridges — Not Walls.”
— Alex Spaulding, 2025


Built Different.
Not a VM. Not a compatibility layer. A real compositor.
100% Free & Open Source
Wawona is and always will be free software under the MIT License. No paywalls, no telemetry, no vendor lock-in. Audit the code, fork it, contribute — it belongs to the community.
App Store Compliant
Designed from day one to meet Apple and Google app review guidelines. Available to everyone — download from the App Store or Play Store. No sideloading, no jailbreak required.
Extensible
Port any Linux application to macOS and utilize Wayland directly on the same computer. Wawona will support user plugins for extending functionality far beyond the barebones compositor.
The Architecture
Deconstructing the next-generation compositor.
Shared Rust Core
Wawona relies on a unified, high-performance compositor core written in 100% safe, concurrent Rust. This monolithic library securely orchestrates input seat management and surface rendering identically across all host environments.
flowchart LR
macOS["macOS\nAppKit + Metal"] -->|UniFFI| core
iOS["iOS\nUIKit + Metal"] -->|UniFFI| core
Android["Android\nVulkan + JNI"] -->|FFI/JNI| core
core(["Wawona Core\nRust"])
core -->|Wayland| linux["Linux\nWayland Clients"]Native Window Promotion
Instead of drawing desktops into a single monolithic window, Wayland surfaces are mapped directly to native OS window primitives. A platform layer translates Wawona logical windows into real NSWindow or Activity objects.
let surface = compositor.create_surface();
let window = platform.promote_to_native(surface);
window.activate_and_show();
Zero-Copy Pipelines
Client buffers (like IOSurface or dmabufs) are mapped directly to GPU textures in our native Metal and Vulkan rendering backends. Frame delivery achieves near-instant presentation with zero intermediate copies. We also include userland drivers such as kosmickrisp, moltenvk, angle, and the like for creating accelerated rendering.
FFI & Remote Bridging
The Rust core connects to platform-native languages (Swift, Kotlin) via UniFFI and C bindings. Additionally, native Waypipe integration allows remote Linux X11/Wayland applications to seamlessly render locally.
waypipe ssh user@server
firefox & // appears natively
Explore
The Frontier of Wayland.
Engineered by Alex Spaulding. Powered by the community. Join the evolution of the modular desktop. Your support is the catalyst for the next generation of native, high-performance compositing on every platform.




