Bienvenidos a este monorepo. Todas las carpetas de este repositorio son proyectos Rust separados (crates) que probablemente estén publicados en crates.io. Y esto constituye un espacio de trabajo de Rust.
Aquí está el registro de cambios para este monorepo o espacio de trabajo de Rust. Este es un excelente lugar para comenzar a familiarizarse con lo que ha cambiado recientemente en cada uno de los proyectos en este espacio de trabajo de Rust.
Tabla de contenido:
La siguiente es una descripción general de alto nivel de cada una de las cajas que constituyen este espacio de trabajo de Rust.
Hay cajas que van desde TUI "completa" hasta TUI "parcial", y todo lo que hay en el medio.
r3bl_tui
le brinda compatibilidad con "pantalla alternativa" y "pantalla completa" en modo sin formato, a la vez que es totalmente asíncrono. Un ejemplo de esto es la aplicación edi
"Full TUI" en la caja r3bl-cmdr
. Puede instalar y ejecutar esto con el siguiente comando:
cargo install r3bl-cmdr
edi
r3bl_terminal_async
le brinda la posibilidad de crear fácilmente sus propios programas de shell asíncronos utilizando "async readline & stdout".
Aquí hay ejemplos de esto:
r3bl_tuify
le brinda la posibilidad de crear fácilmente sus propios programas CLI con interacción de bloqueo. Esto es excelente para obtener información del usuario, mientras se bloquea el hilo principal y usar el modo sin formato mientras el hilo principal está bloqueado. Una aplicación de ejemplo de esto es la aplicación giti
en la caja r3bl-cmdr
. Puede instalar y ejecutar esto con el siguiente comando:
cargo install r3bl-cmdr
giti
Hay muchas otras cajas subyacentes que se utilizan para construir estas cajas de nivel superior. Aquí hay una breve lista de ellos:
r3bl_core
contiene muchas utilidades de bajo nivel que se utilizan en las otras cajas. Esto incluye cosas como macros declarativas, colores, estilos, compatibilidad con Unicode, etc. Con el tiempo, si algún código se crea en una caja de "nivel superior" y es útil en otras cajas, se mueve a esta caja. Y esto está documentado en el registro de cambios.
r3bl_test_fixtures
contiene muchos accesorios de prueba que se utilizan en las otras cajas. Esto incluye cosas como simulacros para stdio y flujos de eventos (eventos de entrada generados por la interacción del usuario).
r3bl_ansi_color
es una caja que no tiene ninguna relación con las demás en este espacio de trabajo. Proporciona una API limpia que le permite utilizar fácilmente colores ANSI en sus programas de terminal. Si no desea utilizar las cajas más complejas y solo necesita enviar texto con estilo al terminal, entonces esta es la caja para usted.
Incluso hay una caja que solo contiene aplicaciones orientadas al usuario que se crean utilizando estas cajas subyacentes. Esta es la caja r3bl-cmdr
, que le brinda las aplicaciones giti
y edi
(descritas anteriormente). Puede instalar y ejecutar esto con el siguiente comando:
cargo install r3bl-cmdr
Para saber cómo construimos esta caja, eche un vistazo a los siguientes recursos.
Hay un script nushell
que puede usar para ejecutar la canalización de CI/CD para este espacio de trabajo y más (operaciones solo locales). Para obtener una lista de estos, puede ver el script nushell
en la raíz de run
de este repositorio. Para tener una idea de los comandos que puede ejecutar, intente ejecutar el siguiente comando:
cargo install nu
nu run
Deberías ver un resultado similar a este:
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 ejemplo:
nu run all-cicd
ejecutará la canalización CI/CD para este espacio de trabajo.nu run all
para ejecutar la canalización de CI/CD y más (operaciones solo locales). Cada caja contenida en este espacio de trabajo también puede tener su propio script nushell
que también se denomina run
. Esta es una convención que se utiliza en este espacio de trabajo. Puede ejecutar el script run
en cada una de las cajas para obtener una lista de comandos específicos de esa caja.
A medida que este repositorio crece, cambia y madura, es necesaria la poda. El r3bl-open-core-archive
es donde se mueven todo el código y los artefactos que ya no son necesarios.
De esta manera no se "pierde" nada y si necesita utilizar parte del código que se eliminó, puede encontrarlo allí.
Además, si desea realizar cambios en este código y mantenerlo usted mismo, háganoslo saber.