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
gitiEs 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-cmdrUm 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 runSie 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.