Bienvenidos sean a este post, hoy veremos algunas herramientas para cargo.
Como mencionamos antes, este post será para comentar algunas herramientas complementarias a cargo. Hay varias formas de instalarlo pero les voy a dejar la que me pareció más práctica. Su sintaxis es la siguiente:
cargo install <herramienta>
En donde figura herramienta deben reemplazarlo por el título de cada una que veremos a continuación. Con esto comentado, pasemos a hablar sobre la primer herramienta.
cargo-watch
Es una herramienta interesante para hacer un chequeo corto, rápido de nuestro código para compilarlo. Basicámentte hace un llamado a la opción check de cargo. Esta es su conducta predeterminada si lo ejecutamos sin opciones pero usando –help podemos acceder a un listado de los disponibles. Veamos como es el comando para instalarlo:
cargo install cargo-watch
Una vez instalado podrá correrlo desde cualquiera de sus proyectos, les muestro un llamado simple a este:
$ cargo-watch[Running 'cargo check'] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.03s[Finished running. Exit status: 0]
En este caso, al ser un ejemplo simple y correcto no nos mostrará ninguna notificación, pasemos al siguiente comando.
cargo-edit
Esta herramienta es utilizada para editar dependencias en Cargo.toml mediante la línea de comandos. Entre las modificaciones que podemos realizar no solamente son con las dependencias, sino también las dev y las build. Así como también cualquier versión específica de una dependencia. Para instalarlo deben usar el siguientte comando:
cargo install cargo-edit
Una vez instalado tendremos los siguientes comandos disponibles:
- cargo-add: agrega una dependencia
- cargo-rm: remueve una dependencia
- cargo-set-version: específica una versión
- cargo-upgrade: actualiza las mismas
cargo-deb
Esta es orientada para las distribuciones de linux basadas en debian porque es para crear paquetes debian (.deb) de instalación para nuestras aplicaciones. El comando para instalarlo es el siguiente:
cargo install cargo-deb
Sobre esta herramienta hablaremos en otro post.
cargo-outdated
Esta herramienta nos muestra cuales son las crates desactualizadas en nuestro proyecto. El comando para instalarlo es la siguiente:
cargo install cargo-outdated
Estas herramientas son muy útiles para trabajar con nuestros proyectos, dadas las tareas que nos permiten trabajar. Si bien podemos usarlas con los nombres indicados en los titulos, están también fueron agregadas como herrramientas para cargo. En todos los casos, debemos usar a la palabra post-guión, les dejo un ejemplo para entenderlo:
$ cargo watch
clippy
Esta es una herramienta muy particular porque nns permite analizar nuestros códigos y optimizarlos. Una particularidad de esta herramienta es que posee un conjunto de lints*, los cuales son alrededor de 291 pero pueden ser más, y nos permiten optimizarlo. En mi caso, al momento de verificar su instalación ya se encontraba instalado pero en caso de no tenerlo deben usar el siguiente comando:
rustup component add clippy-preview
Para verificar como funciona vamos a tomar el código del post anterior y en lib.rs vamos a modificarlo de la siguiente manera:
pub fn saludar() { let x: bool = true; if x == true { println!("Prueba"); } println!("Holis");}
Este es un código tonto simple, esto nos será especialmente útil en un momento. En el directorio raíz del workspace corran el siguiente comado para usar a clippy:
$ cargo clippy
Este ejecutará a la herramienta y nos devolverá la siguiente salida:
$ cargo clippywarning: equality checks against true are unnecessary --> mi_crate/src/lib.rs:3:5 |3 | if x == true { | ^^^^^^^^^ help: try: `x` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.93.0/index.html#bool_comparison = note: `#[warn(clippy::bool_comparison)]` on by defaultwarning: `mi_crate` (lib) generated 1 warning (run `cargo clippy --fix --lib -p mi_crate` to apply 1 suggestion) Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.06s$
Como pueden ver nos muestra una modificación que podemos realizar para no ser redundante con la comparación. Porque de esta manera sabemos que se ejecutará cuando x sea verdadero. De lo contrario, lo ignorará completamente. Es una gran herramienta para mejorar nuestros códigos pero recuerden que no contendrá todas las situaciones posibles pero se irán agregando más a medida que pasé el tiempo.
Antes de finalizar, recuerden que pueden usar a –help en cada uno de ellos para ver las distintas opciones disponibles. Al estar agregados en el path y en cargo, podemos usarlo en cualquier parte del S.O. Y siempre deben correrlo desde el directorio del proyecto a verificar o modificar.
(*) lint es un término para un conjunto de códigos pensados para optimizar los nuestros.
En resumen, hoy hemos visto algunas herramientas para cargo, que son, para que sirven, y como instalarlas. Tengan este post a mano porque los usaremos para algunos que otros casos. Espero les haya sido de utilidad y les dejo un link a GitHub donde estan los codigos creados hoy:
https://github.com/tinchicus/RUST-codes/tree/main/extendiendo%20cargo
Les dejo algunas de mis redes sociales para seguirme o recibir una notificacion cada vez que subo un nuevo post:


Donación
Es para mantenimento del sitio, gracias!
$1.50





