#ui #declarative-ui #embedded-graphics #graphics #layout #render-target #rendering

nightly 无 std buoyant

用于在 Rust 中构建和渲染类似于 SwiftUI 的声明性 UI 的库

6 个版本

0.1.5 2024 年 7 月 10 日
0.1.4 2024 年 7 月 9 日
0.1.3 2024 年 6 月 9 日

#150 in 图形 API

Download history • Rust 包仓库 91/week @ 2024-05-30 • Rust 包仓库 324/week @ 2024-06-06 • Rust 包仓库 48/week @ 2024-06-13 • Rust 包仓库 7/week @ 2024-06-20 • Rust 包仓库 234/week @ 2024-07-04 • Rust 包仓库 57/week @ 2024-07-11 • Rust 包仓库

每月 419 次下载

MIT/Apache

92KB
2.5K SLoC

浮力

这是一个用于在 Rust 中编写和渲染类似 SwiftUI 布局的库。

目标

  • 嵌入式/无 std 支持
    • 零堆分配
    • 最小内存占用
    • 即时模式,CPU 渲染
  • 支持基于字符和像素的渲染和布局
  • 支持各种渲染设备(例如,终端、帧缓冲区、SPI 显示器等)

布局和渲染

布局代码适用于所有像素类型。视图生成布局,然后将其渲染到渲染目标,调用特定于渲染目标像素类型的渲染代码。

可用的渲染目标

  • TextBuffer:一个基本固定大小的 char 缓冲区。不尊重语素。这主要用于测试和调试。

  • CrossTerm:使用 crossterm 包将彩色字符像素渲染到终端。

路线图

目前,所有核心组件都已存在,可以构建和渲染静态视图。

以下是优先级顺序的计划功能

  • 嵌入式图形特质的实现
  • 基于像素的渲染目标的默认像素渲染
  • 更健壮的字体支持
    • 嵌入式图形字体
    • 内置字体的嵌入式 SPI 显示器
  • 状态管理
    • 布局重用
    • 动画
  • 交互性
    • 点击/触摸路由
    • 焦点管理/键盘输入

这些事情会很棒

  • Unicode/语素支持以正确处理嵌入式外的文本

使用说明

该项目是一个正在进行中的项目,不应在生产中使用。

到目前为止,所有公共 API 都应被视为不稳定,并且此库尚未遵守 SemVer。是的,我应该从 0.0.x 开始。抱歉。

许可协议

许可协议为以下之一

任选。

贡献

除非您明确表示,否则根据Apache-2.0许可证定义的您有意提交用于作品中的任何贡献,均应双许可如上,不附加任何额外条款或条件。

依赖项

~1–6.5MB
~30K SLoC