No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Cargo (dependencias)

11/20
Recursos

Todo lenguaje de programación tiene su gestor de dependencias. Composer para PHP, NPM o Yarn para Javascript, Pip para Python, Maven para Java, entre otros. En Rust utilizamos Cargo.

Gestor de dependencias en Rust

Cargo posee una importante cantidad de dependencias desarrolladas por la comunidad del lenguaje. Puedes encontrar y buscar las dependencias que necesitas en Crates.io que es el repositorio de dependencias de Rust que Cargo usa para descargarlas.

Instalación de una dependencia

Para instalar una dependencia que sea de tu interés para tu proyecto, basta con agregar manualmente el nombre seguido de la versión de la misma al archivo Cargo.toml debajo de la sección [dependencies].

[package]
name = "platzi-curso-rust"
version = "0.1.0"
edition = "2021"

[dependencies]
regex = "1.6.0"

La próxima vez que realices un cargo run, este detectará que la dependencia no se encuentra instalada y realizará la instalación de la misma.
Realiza la acción contraria de borrar la dependencia manualmente para que Cargo lo detecte y borre la misma de tu proyecto.

Consejo: Llevar un control de tus dependencias es muy importante. Trata de tener la lista ordenada desde las dependencias más importantes a las menos importantes. O mejor aún, ordenalas alfabeticamente.

 

Utilización de una dependencia

Para utilizar una dependencia en tu proyecto, realiza la importación de la siguiente manera:

use regex::Regex;

fn main() {
    // ...
}

De esta manera, la dependencia estará lista para su utilización en tu código.

Nota: Observa que Cargo genera un nuevo archivo en la raíz de tu proyecto llamado Cargo.lock. El mismo contiene las versiones exactas de tus librerías para que todos los desarrolladores, y en todos los ambientes del proyecto, se utilice las mismas versiones y evitar problemas de compatibilidad entre las mismas. Es muy importante que versiones este archivo en Git.

 

Consejos sobre utilización de dependencias de terceros

Las buenas dependencias desarrolladas por la comunidad de Rust suelen tener una documentación de uso, además de estar actualizadas. Asegúrate, antes de descargar cualquier dependencia, de chequear quién la desarrolla, qué cantidad de descargar por semana posee, revisar cuándo recibió su última actualización en el repositorio oficial de la misma (normalmente en GitHub).

Algunos consejos que te permitirán seleccionar buenas dependencias, sin bugs y que no generen problemas de seguridad en tu aplicación.

Cargo es un poderoso gestor de dependencias, pero es más que la instalación de librerías de terceros que necesites. Explora sus múltiples usos con el comando cargo --help para visualizar por consola todas sus posibilidades.


Contribución creada por: Kevin Fiorentino.

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Cargo tiene su propia documentación, para hacer cosas como instalar las dependencias vía CLI, actualizarlas, eliminarlas, etc!

.
Es conocida como The Cargo Book, y la puedes encontrar en este enlace
.
Y dado que Cargo se encarga de más cosas que solo instalar dependencias, puedes ver los comandos que tiene para estas mismas en esta sección 😉

Por si alguien le pasa, en mi caso me salió primero esto en la terminal
Blocking waiting for file lock on package cache

Después de un rato (en mi caso sí duró mucho) ya empieza a compilar, pero tarda mucho en traer dependencias por alguna razón jsjs

Cargo es el simil de npm en Rust

Ahora mismo, ya hay otra versión de regex de la indicada en el video

regex = "1.6.0"

En VSCode tuve un problema con rust-analyzer al momento de añadir nuevas dependecias mostrado como un error de autenticación de git, ejecuté en la terminal el comando siguiente para actualizar la config:

cargo --config net.git-fetch-with-cli=true fetch

El npm de javascript, el pip de python, el composer de php y todos los demas de rust