MudEngine Part 10: Desktop with Blitz
From WebView to WGPU
Throughout Parts 4–9 we built the MudEngine as a web application — the Dioxus frontend compiles to WASM and runs in a browser tab, while the server runs on Axum. The two communicate via WebSocket and server functions.
Traditionally, Dioxus desktop apps use the system WebView (via the wry crate) to render the UI. But Dioxus also ships an experimental native renderer called Blitz — a GPU-accelerated HTML/CSS engine written in Rust from scratch, built on WGPU and Vello.
Blitz renders your rsx! components directly — no WebView, no system browser engine, no JavaScript bridge. The same HTML and CSS you write gets drawn by your GPU.
Why Blitz instead of a WebView?
The Blitz renderer is in active development by the Dioxus team. It is not yet production-ready — you will encounter missing CSS features and rendering quirks. This part is an exploration of what's coming next.
In this part you will:
- Add
dioxus-native(the Blitz renderer crate) to your project - Swap
dioxus::launchfordioxus_native::launch - Configure the server URL for the native client
- Launch the MUD as a native window with GPU-accelerated rendering
| Aspect | WebView (wry) | Blitz |
|---|---|---|
| Rendering | System browser engine (Chromium/WebKit) | Custom WGPU renderer |
| Bundle size | ~5 MB | Potentially smaller |
| Control | Limited by WebView API | Full control over rendering pipeline |
| CSS support | Full browser CSS | Growing (flexbox, grid, Stylo-based) |
| Status | Stable | Experimental (pre-alpha) |
| System deps | libwebkit2gtk on Linux | WGPU (Vulkan/Metal/DX12) |