自從我開始使用 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...
-