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 工作流程)作為參考實作。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案