r3bl-org/r3bl-open-core
TUI framework and developer productivity apps in Rust 🦀
解決的問題
現有的終端使用者介面(TUI)函式庫通常依賴阻塞操作,容易造成螢幕閃爍,或對終端行為的控制有限。r3bl-open-core 提供一個高效率、完全非同步的框架,讓開發者能以 Rust 建構現代化的 CLI 與 TUI 應用程式,避免阻塞主執行緒,並在 Linux、macOS 與 Windows 上無縫運作。
工作原理
此專案實作即時模式的反應式 UI,每次狀態變更都會觸發從頭開始的重繪,將渲染與狀態變更分離。它使用雙緩衝合成器,僅繪製差異部分,以優化效能並減少閃爍。該框架建構於以下幾個核心原語之上:
- 非同步 Readline:非阻塞、可中斷的行輸入實作。
- Applets:一種狀態管理系統,允許程序在其生命週期中持續保存並共用狀態。
- FlexBox 與 CSS 風格樣式:受現代 Web 開發(React、JSX、CSS)啟發的宣告式佈局引擎與樣式系統。
- TUI 模式:支援「完整 TUI」(原始模式、替代畫面)、「部分 TUI」(互動式選擇與非同步 REPL),以及透過 PTY 實現的終端多工。
適用對象
希望建構沉浸式、反應迅速且複雜的終端應用程式的 Rust 開發者——從簡單的互動式提示到全螢幕生產力工具,無需受限於傳統阻塞式 TUI 函式庫的限制。
主要特色
- 完全非同步:基於 Tokio,確保主事件迴圈與所有操作皆非阻塞。
- Web 啟發的易用性:將 FlexBox 與 CSS 風格的宣告式佈局帶入終端。
- 跨平台支援:原生支援 Windows、macOS 與 Linux,並包含對 SSH 連線的優化。
- 豐富的元件庫:包含具語法強調的 Markdown 解析器、富文本編輯器與對話框等。
- 整合應用:提供
edi(Markdown 編輯器)與giti(互動式 Git 工作流程)作為參考實作。
相關
- 專案
- 專案
- 專案
- 專案
- 專案