自从我开始使用 Vibe Coding 以来,每当我需要 CLI/TUI 工具时,出于性能考虑,我都会用 Rust 来编写。尽管当时我对 Rust 几乎一窍不通!
然而,在解释和 AI 修改方面,像 Python 的 Textual 或 JS 的 Ink 这样的工具虽然语法直观且使用方便,但运行时依赖和性能开销却一直困扰着我。因此,就 Rust 而言,虽然 ratatui 拥有良好的生态系统并提供一些 AI 辅助功能,但我感觉它缺乏一个易于理解的原生 AI 架构。
因此,我开发了两个工具。
1. tui.builders - 一个可以在浏览器中可视化设计终端 UI 并导出 Rust 代码的编辑器。我的目标是实现类似 Figma 的易用性。
tui.builders
当您拖动一个控件并在检查器中设置其属性时,
代码将按 1:1 的比例生成:
- 检查器:width=30, padding=2, border=rounded
- 代码:.w(30).p(2).border(Border::Rounded)
因此,您可以轻松地创建 TUI 工具:使用 Figma 等编辑器在 Web 上构建工具,立即导出,并与 AI 一起编辑。
2. SuperLightTUI - 这是一个专为这种 1:1 映射而设计的 Rust TUI 库。
CSS flexbox + Tailwind
由于它采用实用类方法,如果您有 Web 开发经验,
您无需额外学习即可设置布局。例如,您可以编写如下结构的代码。
slt::run(|ui| {
ui.bordered(Border::Rounded).p(2).gap(1).col(|ui| {
ui.text("hello").bold().fg(Color::Cyan);
if ui.button("click").clicked { count += 1; }
});
});
整个应用程序仅用一个闭包定义。它仅需三行代码即可渲染,无需 App 结构体、事件循环或 trait 实现。
我整合了许多我认为必要的元素,例如立即模式渲染和超过 50 个组件(图表、表格、图像、AI 组件等)。
当然,我对这个可视化库还不完全满意,目前正在进行一些细节上的修改,但我希望它能帮助那些既想保持 Rust TUI 的性能又想加快开发速度的人。欢迎大家提出反馈意见。
- tui.builders: tui.builders
- GitHub: github.com/subinium/SuperLight...
-