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
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.
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.
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.
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.
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.
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.
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
kevin Alejandro Leal Torres
Jorge Montoya
Luis Alberto Juarez Corona
Jean Nuñez
Danie Jaramillo
Andres Ricardo Chacon Barrueco
Jesús Ignacio García Fernández
Johangly Sucre
Delaskar Caicedo
Christian Rivera
Andersson Johan Ramirez Mosquera
Hecot Pulido
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
x2
X3
Cargo es el simil de npm en Rust
y de pip en python
y el de gem en Ruby
Ahora mismo, ya hay otra versión de regex de la indicada en el video
regex = "1.6.0"
ahorita esta la
regex = "1.7.0"
Ahora va en:
regex = "1.7.1"
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
Yes, el manejador de paquetes 🤔, aunque este es MUY poderoso...
La única alternativa tan fuerte que he visto ha sido poetry de python, que está basada en cargo XD