November 7, 2025

Ribir or ribbing? Rust gets spicy

Ribir: Non-intrusive GUI framework for Rust/WASM

Rust devs split: Is Ribir genius or Flutter cosplay? Macros praised, skepticism rising

TLDR: Ribir aims to make Rust apps easier across desktop and web with a data-first, macro-friendly style. Comments split: fans praise the cleaner approach, skeptics question the “composition” claims and note missing mobile and rough widgets, reigniting the perennial Rust GUI comparison battle.

Ribir, a new Rust toolkit promising non-intrusive app building across Linux, Windows, macOS and the web, landed with a bold pitch: design your data, and the UI smartly updates itself. It offers optional macros (a shortcut-like syntax) and a layout inspired by Flutter, plus WebAssembly (WASM) demos. But the real show is the comments: one camp is buzzing about cleaner code and “finally, a fresh take,” while the other side raises eyebrows at rough widgets, an unstable API, and mobile support “coming later.”

The drama kicked off fast. the__alchemist asked how it stacks against Rust’s existing GUI crowd—EGUI, GPUI, Slint—then cheered the macro sugar. Meanwhile, rubymamis dropped a skeptical mic: is Ribir’s “composition” actually different from the usual inheritance dance, like in QML? Cue memes about “Yet Another Rust GUI Bingo,” and jokes like “wake me when Android works.” Fans love the precise, data-driven updates; skeptics say it’s early days with 20+ basic widgets still rough, so curb your hype. The vibe? Half hopeful, half spicy side-eye. If Rust GUI wars are your guilty pleasure, Ribir just added a new season. For context, check Rust and what WASM means in simple terms: it runs code in your browser fast.

Key Points

  • Ribir is a Rust GUI framework enabling native multi-platform apps from a single codebase, including desktop and web.
  • It uses a non-intrusive, data-driven model where data mutations trigger precise UI updates.
  • An optional Rust macro-based declarative syntax is provided, with multiple widget composition methods (function widgets, Compose, Render, ComposeChild).
  • Rendering uses a Painter with GPU tessellation based on lyon, with wgpu as the default GPU backend.
  • Current support includes Linux, Windows, macOS, and Web; mobile (iOS/Android) compiles but is not fully adapted, with mobile focus planned after core stabilization.

Hottest takes

"How does this compare to EGUI, GPUI, and Slint?" — the__alchemist
"I like the idea of using macros to clean syntax" — the__alchemist
"I'm really not sure how this 'composition' is any different ... in practice" — rubymamis
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.