Willkommen in diesem Monorepo. Alle Ordner in diesem Repo sind separate Rust-Projekte (Crates), die wahrscheinlich auf crates.io veröffentlicht werden. Und das ist ein Rust-Arbeitsbereich.
Hier ist das Änderungsprotokoll für diesen Monorepo- oder Rust-Arbeitsbereich. Dies ist ein großartiger Ausgangspunkt, um sich mit den jüngsten Änderungen in den einzelnen Projekten in diesem Rust-Arbeitsbereich vertraut zu machen.
Inhaltsverzeichnis:
Im Folgenden finden Sie eine allgemeine Übersicht über alle Kisten, aus denen dieser Rust-Arbeitsbereich besteht.
Es gibt Kisten, die von „voller“ TUI bis zu „teilweiser“ TUI reichen, und alles dazwischen.
r3bl_tui
bietet Ihnen Unterstützung für den Rohmodus „Alternativer Bildschirm“ und „Vollbild“ und ist dabei völlig asynchron. Ein Beispiel hierfür ist die App „Full TUI“ edi
in der r3bl-cmdr
-Kiste. Sie können dies mit dem folgenden Befehl installieren und ausführen:
cargo install r3bl-cmdr
edi
r3bl_terminal_async
gibt Ihnen die Möglichkeit, mit „async readline & stdout“ ganz einfach Ihre eigenen asynchronen Shell-Programme zu erstellen.
Hier sind Beispiele hierfür:
r3bl_tuify
gibt Ihnen die Möglichkeit, ganz einfach Ihre eigenen CLI-Programme mit blockierender Interaktion zu erstellen. Dies ist großartig, um Benutzereingaben zu erhalten, während der Hauptthread blockiert wird, und um den Rohmodus zu verwenden, während der Hauptthread blockiert ist. Eine Beispiel-App hierfür ist die giti
-App in der Kiste r3bl-cmdr
. Sie können dies mit dem folgenden Befehl installieren und ausführen:
cargo install r3bl-cmdr
giti
Es gibt viele andere Unterkisten, die zum Bau dieser Kisten der obersten Ebene verwendet werden. Hier ist eine kurze Liste davon:
r3bl_core
enthält viele Low-Level-Dienstprogramme, die in den anderen Crates verwendet werden. Dazu gehören Dinge wie deklarative Makros, Farben, Stile, Unicode-Unterstützung usw. Wenn im Laufe der Zeit Code in einer Crate „höherer Ebene“ erstellt wird und in anderen Crates nützlich ist, wird er in diese Crate verschoben. Und das ist im Changelog dokumentiert.
r3bl_test_fixtures
enthält viele Testvorrichtungen, die in den anderen Kisten verwendet werden. Dazu gehören Dinge wie Mocks für stdio und Event-Streams (Eingabeereignisse, die durch Benutzerinteraktion generiert werden).
r3bl_ansi_color
ist eine Kiste, die nichts mit den anderen in diesem Arbeitsbereich zu tun hat. Es bietet eine saubere API, die Ihnen die einfache Verwendung von ANSI-Farben in Ihren Terminalprogrammen ermöglicht. Wenn Sie die komplexeren Crates nicht verwenden möchten und lediglich formatierten Text an das Terminal ausgeben müssen, dann ist dies die richtige Crate für Sie.
Es gibt sogar eine Kiste, die nur benutzerorientierte Apps enthält, die mit diesen zugrunde liegenden Crates erstellt wurden. Dies ist die r3bl-cmdr
Kiste, die Ihnen die giti
und edi
Apps (oben beschrieben) bietet. Sie können dies mit dem folgenden Befehl installieren und ausführen:
cargo install r3bl-cmdr
Um zu erfahren, wie wir diese Kiste gebaut haben, werfen Sie bitte einen Blick auf die folgenden Ressourcen.
Es gibt ein nushell
-Skript, mit dem Sie die CI/CD-Pipeline für diesen Arbeitsbereich und mehr ausführen können (nur lokale Vorgänge). Um eine Liste davon zu erhalten, können Sie das nushell
-Skript im Stammverzeichnis dieses Repo- run
anzeigen. Um eine Vorstellung von den Befehlen zu bekommen, die Sie ausführen können, versuchen Sie, den folgenden Befehl auszuführen:
cargo install nu
nu run
Sie sollten eine Ausgabe sehen, die so aussieht:
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
Zum Beispiel:
nu run all-cicd
führt die CI/CD-Pipeline für diesen Arbeitsbereich aus.nu run all
ausführen, um die CI/CD-Pipeline und mehr auszuführen (nur lokale Vorgänge). Jede Kiste, die in diesem Arbeitsbereich enthalten ist, verfügt möglicherweise auch über ein eigenes nushell
-Skript mit dem Namen run
. Dies ist eine Konvention, die in diesem Arbeitsbereich verwendet wird. Sie können das run
in jeder Crate ausführen, um eine Liste der Befehle zu erhalten, die für diese Crate spezifisch sind.
Wenn dieses Repo wächst, sich verändert und reift, ist ein Beschneiden erforderlich. Das r3bl-open-core-archive
ist der Ort, an den der gesamte Code und alle Artefakte verschoben werden, die nicht mehr benötigt werden.
Auf diese Weise geht nichts „verloren“ und wenn Sie einen Teil des entfernten Codes verwenden müssen, können Sie ihn dort finden.
Auch wenn Sie Änderungen an diesem Code vornehmen und ihn selbst pflegen möchten, teilen Sie uns dies bitte mit.