¡Bienvenidos de nuevo a Rustaceo.es! Hoy exploraremos Cargo, el administrador de paquetes de Rust, y Crates.io, el registro oficial de bibliotecas. Aprenderemos cómo gestionar proyectos, manejar dependencias y publicar nuestras propias crates en el ecosistema de Rust.
🚀 ¿Qué es cargo? #
Cargo es la herramienta oficial para la gestión de proyectos en Rust. Nos permite: ✔ Compilar y ejecutar proyectos. ✔ Gestionar dependencias. ✔ Crear, probar y publicar crates.
📌 Instalar Cargo (si aún no lo tienes):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
📂 Creando un proyecto con cargo #
Para iniciar un nuevo proyecto en Rust con Cargo:
cargo new mi_proyecto
cd mi_proyecto
Esto genera la siguiente estructura:
mi_proyecto/
├── Cargo.toml # Configuración del proyecto
├── src/
│ ├── main.rs # Código fuente principal
Para compilar y ejecutar:
cargo run
Para compilar sin ejecutar:
cargo build
Para compilar en modo optimizado:
cargo build --release
📦 Manejo de dependencias #
Las dependencias se gestionan en Cargo.toml
.
📌 Ejemplo: Añadiendo serde
para serialización
[dependencies]
serde = { version = "1", features = ["derive"] }
Luego, ejecutamos:
cargo check
para asegurarnos de que la dependencia se descargó correctamente.
🔍 Explorando y usando crates de crates.io #
Crates.io es el registro oficial de paquetes Rust. Podemos buscar y añadir paquetes a nuestros proyectos.
📌 Ejemplo: Usando reqwest
para peticiones HTTP
cargo add reqwest --features json
Y en el código:
use reqwest;
#[Tokio::main]
async fn main() {
let respuesta = reqwest::get("https://pokeapi.co/api/v2/pokemon/1")
.await.unwrap()
.text()
.await.unwrap();
println!("{}", respuesta);
}
🛠 Creación y publicación de un crate en crates.io #
Podemos publicar nuestras propias bibliotecas en Crates.io.
📌 1️⃣ Configurar un nuevo crate #
cargo new mi_crate --lib
cd mi_crate
Editamos Cargo.toml
y añadimos metadatos:
[package]
name = "mi_crate"
version = "0.1.0"
authors = ["Tu Nombre <tu@email.com>"]
description = "Un crate de ejemplo"
edition = "2021"
📌 2️⃣ Iniciar sesión en crates.io #
cargo login TU_API_TOKEN
(Tu token se genera en https://crates.io/me)
📌 3️⃣ Publicar el crate #
cargo publish
Ahora estará disponible en Crates.io para que cualquiera lo use.
📌 Conclusión #
Rust proporciona una gestión de dependencias y paquetes sencilla y eficiente con Cargo y Crates.io.
🎯 Resumen de lo aprendido: ✔ Cargo facilita la creación y gestión de proyectos. ✔ Crates.io es el ecosistema de bibliotecas de Rust. ✔ Podemos añadir, compilar y publicar crates fácilmente.
🔮 Próximo paso: Explora Crates.io y publica tu primer crate.
¡Hasta la próxima, Rustaceos!