{"repo":"RibirX/Ribir","free":true,"listed":false,"github":"https://github.com/RibirX/Ribir","clone":"git clone https://github.com/RibirX/Ribir.git","description":"Non-intrusive GUI framework for Rust/WASM","language":"Rust","stars":1727,"topics":["cross-platform","gui","declarative","webassembly","ui","reactive","non-intrusive","rust","native"],"license":"MIT","category":"ui-components","readme_excerpt":"Ribir - Non-intrusive GUI Framework for Rust Use Rust to build multi-platform applications from a single codebase. [Website] [Documents] [中文文档] [Web Demo] [Examples] [Changelog] [Releases] [Roadmap] What's Ribir? Ribir is a Rust GUI framework that helps you build beautiful and native multi-platform applications from a single codebase. Experience a novel approach to UI development that's directly based on your data structure APIs. Any data mutation will trigger a precise UI update. Your focus should be on designing your data structure and its APIs. Then, you can describe your data's UI without intruding on its logic. At First Glance A simple example of a counter: To use Ribir without DSL : More [Examples] Features - Declarative language It doesn't introduce a completely new language. Instead, it provides a set of Rust macros for easier interaction. You can choose to use it or not. - Widgets compose system has four kinds of widgets to support you can implement your widget in different ways: - function widget and Compose , from other widgets composition. - Render , implement your layout and paint anything you want. - ComposeChild , control the compose logic between parent and child widgets and specify the template of child widgets. - Non-intrusive state converts your data to a listenable state and updates the view according to the change of the state. - Layout system learning and inspired by [Flutter] Sublinear layout, but not the same. - Event system is a composition event syst","default_branch":null,"files":null,"tree":[],"storefront":"/r/RibirX","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/RibirX/Ribir/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}