A Rust GUI framework for building multi-platform applications with a non-intrusive, data-driven approach.
Ribir is a GUI framework for Rust that helps developers build beautiful and native multi-platform applications from a single codebase. It uses a non-intrusive, data-driven approach where UI updates are triggered directly by data mutations, allowing separation of data logic and UI description.
Rust developers looking to build desktop or web applications with a single codebase, especially those who prefer a declarative, data-driven UI paradigm.
Developers choose Ribir for its novel non-intrusive design that keeps data logic separate from UI, its flexibility with multiple widget implementation methods, and its ability to target multiple platforms including desktop and web with Rust's performance and safety.
Non-intrusive GUI framework for Rust/WASM
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers four widget types (function, Compose, Render, ComposeChild) enabling diverse implementation methods, from simple composition to custom rendering and layout control.
The non-intrusive state system converts data to listenable states, triggering UI updates only on relevant mutations, which improves performance and separates logic from view.
Supports Linux, Windows, macOS, and Web from a single codebase, with desktop and web platforms integrated into CI/CD for reliable cross-platform development.
Uses wgpu as the default GPU render engine for path tessellation, enabling high-performance graphics rendering suitable for complex visual applications.
The widget library has only 20+ basic widgets in a rough stage with unstable APIs, requiring significant custom development for polished or complex UIs.
iOS and Android support is marked as not yet ready or in progress, limiting its use for cross-platform mobile applications despite Rust's portability.
The novel non-intrusive approach and reliance on Rust macros can be challenging for developers unfamiliar with data-driven UI paradigms or advanced Rust features.