Viewbuilder -- Rust 的跨平台用户界面框架
该 crate 提供了一个模块化 GUI 库,可以用作整个框架,也可以与各个部分一起使用。
代码语言:javascript复制let ui = UserInterface::new();
let tree = ui.insert(LocalTree::builder(Window::default()));
let text = tree.insert(Text::new("Hello World!"));
tree.root().push_child(text.key);
ui.run();
Features
- 跨平台,支持桌面和移动设备
- 使用类似 HTML 的 API 进行事件处理
- 使用 dioxus 进行状态管理(可选)
- CSS flexbox 和带有 taffy 的网格布局
- 无障碍使用 Accesskit
- 使用 Rust-skia 进行高性能渲染
入门
安装很简单:
代码语言:javascript复制cargo add viewbuilder --features full
- https://github.com/concoct-rs/viewbuilder
engrave -- 基于浏览器的代码编辑器
engrave 是使用 Rust 和 Dioxus 的桌面和网络文本编辑器。
代码语言:javascript复制use dioxus::prelude::*;
use engrave::{language, Editor, UseEditor};
fn app(cx: Scope) -> Element {
let editor = UseEditor::builder()
.language(language::rust())
.height(600.)
.use_editor(cx, || include_str!("../src/editor/use_editor.rs"));
render!(Editor { editor: editor })
}
效果展示: https://engrave-rs.netlify.app/Editor
目前还有很多 bug 欢迎大家贡献。
- https://github.com/matthunz/engrave