Viewbuilder

Crates.io version docs.rs docs CI status
Examples

A cross-platform user interface framework for Rust. Viewbuilder is a modular GUI library that can be used as an entire framework, or with individual parts. ```rust use viewbuilder::{ view, web::{self, html, Web}, ControlFlow, Model, View, }; enum Message { Increment, Decrement, } #[derive(Default)] struct App { count: i32, } impl Model for App { fn handle(&mut self, msg: Message) -> ControlFlow { match msg { Message::Decrement => self.count -= 1, Message::Increment => self.count += 1, } ControlFlow::Rebuild } } fn view(model: &App) -> impl View { ( format!("High five count: {}", model.count), view::once(html::button( html::on_click(|| Message::Increment), "Up high!", )), view::once(html::button( html::on_click(|| Message::Decrement), "Down low!", )), ) } fn main() { web::run(App::default(), view) } ``` ## Getting started Instatllation is simple with: ```sh cargo add viewbuilder --features full ```