{"repo":"audulus/rui","free":true,"listed":false,"github":"https://github.com/audulus/rui","clone":"git clone https://github.com/audulus/rui.git","description":"Declarative Rust UI library","language":"Rust","stars":2043,"topics":["rust","gui","gpu","winit","wgpu","vger","graphics","ui","declarative-ui","user-interface"],"license":"MIT","category":"ui-components","readme_excerpt":"rui Experimental Rust UI library, inspired by SwiftUI. Early days, but some stuff already works. rui will be used for a future version of Audulus rui is GPU rendered and updates reactively (when your state changes). The focus of rui is to have the best ergonomics, and use the simplest possible implementation. As such, there is no retained view tree (DOM) or view diffing. Everything is re-rendered when state changes, under the assumption that we can do that quickly. discord server - macOS ✅ - Windows ✅ - Linux ✅ - iOS ✅ (see https://github.com/audulus/rui-ios) - wasm (WIP) Examples obligatory Counter: some shapes: canvas for gpu drawing: slider with map : calculator: synth: widget gallery: Goals - Encode UI in types to ensure stable identity. - Optimize to reduce redraw. - Use vger-rs for rendering. - Minimal boilerplate. - Good looking. - No unsafe . - No use of RefCell (leads to potential runtime errors). - Accessibility for assistive technologies. Optional Features - winit - ( enabled by default ) use winit for windowing. - Use default-features = false if you are embedding rui (see https://github.com/audulus/rui-ios). Why and how? In the long term, I'd like to move Audulus over to Rust. After looking at other available UI options, it seemed best to implement something resembling the existing immediate mode UI system I already have working in Audulus, but better. I had been enjoying the ergonomics of SwiftUI, but SwiftUI simply can't handle big node graphs very well (we have","default_branch":null,"files":null,"tree":[],"storefront":"/r/audulus","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/audulus/rui/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."}