7 个不稳定版本 (3 个破坏性更新)
0.4.0 | 2023 年 7 月 4 日 |
---|---|
0.3.1 | 2023 年 6 月 4 日 |
0.2.1 | 2023 年 4 月 8 日 |
0.1.1 | 2023 年 3 月 26 日 |
#898 in GUI
在 2 crates 中使用
535KB
13K SLoC
lemna
为 Rust 设计的反应式 UI 框架
功能
- 类似 React 的有状态的 UI
- 类似 Flexbox 的布局引擎
- 全局样式
- 可配置的渲染目标(目前仅为 wgpu,它提供跨平台的 GPU 加速渲染)
- 可配置的窗口后端(baseview,winit,wx-rs)
- 跨平台
- 组件可以通过其他组件和图形原语的组合构建,这些组件与 GPU 渲染器映射良好。
- 状态和渲染状态被缓存,因此只有相关的节点触发重新计算
- 内置组件/小部件
Div
,一个可滚动的容器Button
,一个支持工具提示的按钮RadioButtons
,可选择的按钮数组Toggle
,一个简单的状态切换按钮Text
,一些文本TextBox
,一个用于输入文本的框Canvas
,用于显示位图图像,包括在空白画布上绘制Selection
,一个下拉菜单RoundedRect
,一个可样式的矩形
- 内置 OpenIconic 图标
- wgpu 渲染后端将原语批量在一起以减少对 wgpu 的调用(这使得它比不这样做的东西快得多!)
- nih-plug 支持在 lemna-nih-plug 软件包中
缺少的功能
- 更健壮和更多的小部件(例如,在
Text
小部件上支持文本选择)
运行
选择您首选的窗口后端
cargo run -p lemna-baseview --example hello
cargo run -p lemna-wx-rs --example hello
cargo run -p lemna-winit --example scroll
查看 ./backends/**/**examples
了解其他示例。请注意,wx-rs 目前在大多数平台上都有编译限制,而 winit 无法处理许多事件。Baseview 后端不在 cargo 上(因为 baseview 本身不在),但它是最功能齐全的。
实际示例
依赖项
~16–54MB
~848K SLoC