Dioxus 0.5: Web, Desktop, Mobile Apps in Rust
Dioxus 0.5, a Rust-based framework for building web, desktop and mobile apps from a single codebase, is drawing attention for major usability improvements like removing most lifetime gymnastics and adding a new signals-based state model. Commenters weigh its prospects against other Rust UI frameworks (such as Leptos, Yew and egui) and against platforms like Tauri, Flutter, Electron and React Native, focusing on performance, WebAssembly size, native-API access and multi-platform reach. The project’s venture funding and planned “Vercel/Expo-style” deployment offering spark both optimism about its long-term viability and concern over open-source governance and the risks of VC-backed tooling.
Adoption, Ecosystem & Stability
- Several commenters have built real apps (e.g., Mastodon client, blog rendering, SSHFS GUI) and report strong ergonomics but previously hit missing features; 0.5 is seen as fixing many of those pain points (lifetimes, cloning, state sharing).
- Dioxus is viewed as one of the leading Rust UI contenders alongside Leptos; Yew is described as stagnating.
- Some worry about API churn and rewrites, but maintainers claim the R&D-heavy phase is tapering and that core pieces will be stabilized first.
Venture Funding, Governance & Risk
- Venture backing and YC participation are seen by some as a strong signal of momentum and long-term runway.
- Others are wary of VC-backed OSS (fear of open-core, license changes, SaaS lock-in) and prefer community/corporate-funded models like some desktop and Tauri projects.
- Dioxus’ stated plan: monetize via a Vercel/Expo-like (possibly self-hostable) deploy platform while keeping the framework open, with grants and sponsors as a fallback if VC dries up.
- Debate over whether VC improves or harms reliability; no consensus.
Technical Approach & Performance
- 0.5 introduces signals and a
generational-box-based “poor man’s GC” to remove lifetimes; maintainers claim no performance regression when used as intended. - Unsafe usage is currently limited to FFI, signal ergonomics, and some Send/Sync impls, with a goal of minimizing it.
- Dioxus for desktop uses native Rust with a webview or an experimental WGPU+Servo/Stylo renderer; long-term intent is to favor the latter.
- Web WASM bundle sizes can be optimized significantly (hello world to <50KB; realistic apps ~hundreds of KB).
Comparisons: Tauri, Flutter, Electron, Others
- Dioxus vs Tauri: same underlying webview; key difference is where Rust runs (Dioxus logic is native-side, avoiding heavy IPC and WASM constraints). Tauri plugins can generally work with Dioxus.
- Compared to Flutter/Electron: Dioxus aims for smaller binaries (~3MB desktop), better for low-end/embedded-ish devices; Flutter’s canvas-based web rendering is criticized for some web use cases.
- Dioxus vs Leptos/Yew/egui: Dioxus emphasizes React-like model plus aggressive optimizations and multi-platform support; Leptos is praised but seen as less ergonomic by some; egui is framed as better for graphics-heavy, full-frame redraw apps.
Use Cases & Integrations
- Interest in Bevy integration (for game/editor UIs), SVG-heavy workflows, web components, and offline-first multi-platform apps.
- Some desire alternative DSLs (e.g., SwiftUI-like) instead of JSX-style RSX, but others value React familiarity.