Bem-vindo a este monorepo. Todas as pastas neste repositório são projetos Rust separados (crates) que provavelmente são publicados em crates.io. E isso constitui um espaço de trabalho Rust.
Aqui está o changelog para este espaço de trabalho monorepo ou Rust. Este é um ótimo lugar para começar a se familiarizar com o que mudou recentemente em cada um dos projetos neste espaço de trabalho Rust.
Índice:
A seguir está uma visão geral de alto nível de cada uma das caixas que constituem este espaço de trabalho Rust.
Existem caixas que variam de TUI “completa” a TUI “parcial” e tudo mais no meio.
r3bl_tui
oferece suporte ao modo bruto "tela alternativa" e "tela cheia", sendo totalmente assíncrono. Um exemplo disso é o aplicativo edi
"Full TUI" na caixa r3bl-cmdr
. Você pode instalar e executar isso com o seguinte comando:
cargo install r3bl-cmdr
edi
r3bl_terminal_async
oferece a capacidade de criar facilmente seus próprios programas shell assíncronos usando "async readline & stdout".
Aqui estão alguns exemplos disso:
r3bl_tuify
oferece a capacidade de criar facilmente seus próprios programas CLI com interação de bloqueio. Isso é ótimo para obter a entrada do usuário, enquanto bloqueia o thread principal e usa o modo bruto enquanto o thread principal está bloqueado. Um exemplo de aplicativo disso é o aplicativo giti
na caixa r3bl-cmdr
. Você pode instalar e executar isso com o seguinte comando:
cargo install r3bl-cmdr
giti
Existem muitas outras caixas subjacentes que são usadas para construir essas caixas de nível superior. Aqui está uma pequena lista deles:
r3bl_core
contém muitos utilitários de baixo nível que são usados em outras caixas. Isso inclui coisas como macros declarativas, cores, estilos, suporte Unicode, etc. Com o tempo, se algum código for criado em uma caixa de "nível superior" e for útil em outras caixas, ele será movido para esta caixa. E isso está documentado no changelog.
r3bl_test_fixtures
contém muitos acessórios de teste que são usados em outras caixas. Isso inclui coisas como simulações para stdio e fluxos de eventos (eventos de entrada gerados pela interação do usuário).
r3bl_ansi_color
é uma caixa pouco relacionada às outras nesta área de trabalho. Ele fornece uma API limpa que permite usar facilmente cores ANSI em seus programas de terminal. Se você não quiser usar caixas mais complexas e precisar apenas enviar algum texto estilizado para o terminal, então esta é a caixa para você.
Existe até uma caixa que contém apenas aplicativos voltados para o usuário que são criados usando essas caixas subjacentes. Esta é a caixa r3bl-cmdr
, que fornece os aplicativos giti
e edi
(descritos acima). Você pode instalar e executar isso com o seguinte comando:
cargo install r3bl-cmdr
Para saber como construímos esta caixa, dê uma olhada nos seguintes recursos.
Há um script nushell
que você pode usar para executar o pipeline de CI/CD para este espaço de trabalho e muito mais (operações somente locais). Para obter uma lista deles, você pode visualizar o script nushell
na raiz deste repo run
. Para ter uma ideia dos comandos que você pode executar, tente executar o seguinte comando:
cargo install nu
nu run
Você deverá ver uma saída semelhante a esta:
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
Por exemplo:
nu run all-cicd
executará o pipeline de CI/CD para este espaço de trabalho.nu run all
para executar o pipeline de CI/CD e muito mais (operações apenas locais). Cada caixa contida neste espaço de trabalho também pode ter seu próprio script nushell
, também denominado run
. Esta é uma convenção usada nesta área de trabalho. Você pode executar o script run
em cada uma das caixas para obter uma lista de comandos específicos daquela caixa.
À medida que este repositório cresce, muda e amadurece, a poda é necessária. O r3bl-open-core-archive
é para onde todos os códigos e artefatos que não são mais necessários são movidos.
Dessa forma nada fica “perdido” e se precisar usar algum código que foi removido, você poderá encontrá-lo lá.
Além disso, se você quiser fazer alterações neste código e mantê-lo por conta própria, informe-nos.