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 中使用

MIT 许可证

535KB
13K SLoC

lemna

Crates.io Docs.rs

为 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