このモノレポへようこそ。このリポジトリ内のすべてのフォルダーは、おそらく crates.io に公開される個別の Rust プロジェクト (クレート) です。そしてこれが Rust ワークスペースを構成します。
このモノリポジトリまたは Rust ワークスペースの変更ログは次のとおりです。これは、この Rust ワークスペースの各プロジェクトで最近何が変更されたのかを理解するのに最適な場所です。
目次:
以下は、この Rust ワークスペースを構成する各クレートの概要です。
「完全な」TUI から「部分的な」TUI、およびその中間のすべての範囲のクレートがあります。
r3bl_tui
、完全に非同期でありながら、raw モードの「代替画面」と「全画面」のサポートを提供します。この例としては、 r3bl-cmdr
クレート内の「Full TUI」アプリedi
あります。次のコマンドでこれをインストールして実行できます。
cargo install r3bl-cmdr
edi
r3bl_terminal_async
使用すると、「async readline & stdout」を使用して独自の非同期シェル プログラムを簡単に構築できます。
以下にその例を示します。
r3bl_tuify
使用すると、対話をブロックする独自の CLI プログラムを簡単に構築できます。これは、メインスレッドをブロックしながらユーザー入力を取得したり、メインスレッドがブロックされているときに raw モードを使用したりするのに最適です。このアプリの例は、 r3bl-cmdr
クレート内のgiti
アプリです。次のコマンドでこれをインストールして実行できます。
cargo install r3bl-cmdr
giti
これらのトップレベルのクレートを構築するために使用される基礎となるクレートが他にも多数あります。以下にそれらの短いリストを示します。
r3bl_core
他のクレートで使用される低レベルのユーティリティが多数含まれています。これには、宣言マクロ、色、スタイル、Unicode サポートなどが含まれます。時間の経過とともに、「高レベル」クレートで作成されたコードが他のクレートで役立つ場合、そのコードはこのクレートに移動されます。そして、これは変更ログに文書化されています。
r3bl_test_fixtures
他のクレートで使用されるテスト フィクスチャが多数含まれています。これには、stdio のモックやイベント ストリーム (ユーザー操作によって生成される入力イベント) などが含まれます。
r3bl_ansi_color
は、このワークスペース内の他のクレートとは多少無関係です。ターミナル プログラムで ANSI カラーを簡単に使用できるクリーンな API を提供します。より複雑なクレートを使用したくないが、スタイル付きのテキストを端末に出力するだけでよい場合は、これが最適なクレートです。
これらの基礎となるクレートを使用して構築されたユーザー向けアプリのみを含むクレートもあります。これはr3bl-cmdr
クレートで、 giti
およびedi
アプリ (上記で説明) を提供します。次のコマンドでこれをインストールして実行できます。
cargo install r3bl-cmdr
このクレートをどのように構築したかについては、次のリソースをご覧ください。
このワークスペースの CI/CD パイプラインなどを実行するために使用できるnushell
スクリプトがあります (ローカルのみの操作)。これらのリストを取得するには、このリポジトリrun
のルートにあるnushell
スクリプトを表示します。実行できるコマンドを把握するには、次のコマンドを実行してみてください。
cargo install nu
nu run
次のような出力が表示されるはずです。
Usage: run <command> [args]
<command> can be:
all
all-cicd
build
build-full
clean
install-cargo-tools
test
docs
check
check-watch
clippy
clippy-watch
serve-docs
upgrade-deps
rustfmt
help
例えば:
nu run all-cicd
コマンドは、このワークスペースの CI/CD パイプラインを実行します。nu run all
コマンドを実行して、CI/CD パイプラインなどを実行することはできます (ローカルのみの操作)。このワークスペースに含まれる各クレートには、 run
という名前の独自のnushell
スクリプトも含まれる場合があります。これは、このワークスペースで使用される規則です。各クレートでrun
スクリプトを実行すると、そのクレートに固有のコマンドのリストを取得できます。
このリポジトリが成長、変更、成熟するにつれて、剪定が必要になります。 r3bl-open-core-archive
は、不要になったすべてのコードとアーティファクトが移動される場所です。
こうすることで、何も「失われる」ことはなく、削除されたコードの一部を使用する必要がある場合は、そこで見つけることができます。
また、このコードに変更を加えて自分で保守したい場合は、お知らせください。