このモノレポへようこそ。このリポジトリ内のすべてのフォルダーは、おそらく 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は、不要になったすべてのコードとアーティファクトが移動される場所です。
こうすることで、何も「失われる」ことはなく、削除されたコードの一部を使用する必要がある場合は、そこで見つけることができます。
また、このコードに変更を加えて自分で保守したい場合は、お知らせください。