r3bl-org/r3bl-open-core
Fully async Rust TUI engine 🦀. For powering AI/LLM coding agents, Cloud/SSH workflows & interactive CLIs: non-blocking readline, inline dialogs, React/Elm-style full-screen TUI, Markdown editor, PTY multiplexing & rust-analyzer MCP server.
r3bl-open-core (ROC)
概要 – Rustベースの非同期ターミナルユーザーインターフェース(TUI)フレームワークで、モダンでリアクティブなUIパターン(React/Elmを参照)をコマンドラインにもたらします。5つのクレートのモノレポとして提供され、コアはr3bl_tuiで、既製の生産性向上アプリやビルドツールが含まれます。
AI/LLMワークフローへの重要性 – ROCは、AIコーディングエージェントや実行ハーネスのための高速でインタラクティブなフロントエンドをホストするように明示的に設計されています。一般的なNode/inkベースのターミナルとは異なり、純粋なRustで動作し、ゼロレイテンシーのPTY処理、非ブロッキング入力、決定的なプロセスライフサイクルを提供します。これは、長時間実行されるサンドボックス化されたツール(コンテナ、マイクロVMなど)をオーケストレーションする際に重要です。
主な機能
- 非同期でノンブロッキングなI/O –
readline_asyncを使用すると、ユーザーが入力している間もREPLがバックグラウンドタスクを実行し続けることができます。 - インラインダイアログ –
chooseは、画面を占有せずにインラインでレンダリングされる単発の複数選択メニューを提供します。 - フルスクリーンアプリ – 宣言的なCSS風スタイリング、フレックスボックスレイアウト、組み込みのMarkdownエディタを備えた、リアクティブでパニックセーフな生モードUI。
- ターミナルマルチプレクシングとPTY – インメモリ仮想端末、仮想タブ、2次元水平パン、およびサブプロセス出力を可視ビューポートから分離するPTY-mux。
- Unicode対応レンダリング –
GCStringは書記素クラスター、複雑な絵文字、ワイド文字を正しく処理し、スライスのパニックや視覚的な破損を防ぎます。 - パフォーマンス最優先の設計 – Newtypeベースの座標安全性、SIMDバックアップの
Flat2DArrayバッファ、ダブルバッファリングの差分レンダリング、およびcrosstermをバイパスして最小レイテンシを実現するLinux専用のカスタムdirect_to_ansiドライバ。 - クロスプラットフォーム – Linux(ネイティブドライバ)、macOS、Windows、BSDで
crosstermフォールバックにより動作。 - テストとベンチマーク – ヘッドレスPTYテストマクロ、ビジュアルスナップショットテスト、および組み込みのフレームグラフプロファイリング。
主な使用例
- AI/LLMコーディングエージェント – 信頼性の高いPTYオーケストレーションと高速なUIフィードバックを必要とするコード生成ボット向けのターミナルフロントエンドを構築。
- DevOpsおよびクラウドツール – 仮想タブと高遅延耐性レンダリングを備えた、リッチでレスポンシブなSSHフレンドリーなワークスペース。
- インタラクティブなMarkdown – 構文ハイライトとインラインコード実行によるライブ編集。
- 一般的な開発者の生産性向上 –
giti、edi、env-sourceなどのアプリは、再利用可能なターミナルコンポーネントの構成方法を示しています。
エコシステム
| クレート | 役割 |
|---|---|
r3bl_tui |
コアの非同期TUIエンジン、PTYプリミティブ |
r3bl-cmdr |
既製の生産性向上アプリ(git UI、エディタ、envローダー) |
r3bl-build-infra |
ビルド時ツール(cargo-rustdoc-fmt、spawny) |
r3bl-rust-analyzer-mcp-server |
IDE/エージェント統合のための高性能rust-analyzerサーバー |
r3bl_analytics_schema |
プライバシーファーストな分析とアップグレードスキーマ |
成熟度 – crates.ioで270万以上のダウンロードがあり、リポジトリには自動化されたクロスプラットフォームテストとベンチマークが組み込まれています。このプロジェクトは、外部依存関係をtokio、mio、mimallocなどの十分に保守された基盤に限定することで、サプライチェーン完全性を重視しています。
始め方 – Cargoを介してRustプロジェクトに必要なクレートを追加し、提供されたプリミティブ(readline_async、choose、フルスクリーンウィジェット)を使用してアプリを構成します。READMEには、PTYマルチプレクシングと水平パンを実演するサンプルバイナリ(例:pty_mux_example)が含まれています。
すべての詳細はリポジトリのREADMEから直接取得されており、外部情報は追加されていません。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト