Cargo
¿Qué es Cargo?[edit]
Es el manejador de paquetes y constructor del sistema de Rust. Descarga las librerías que requiere tu programa (dependencias), las compila y arma tu código. Vamos a seguir utilizando Cargo en el resto del tutorial. Cargo se instala junto con Rust, así que ya lo tienen en tu sistema si ya tienes Rust.
Construyendo un proyecto con Cargo[edit]
Para crear un proyecto, solo debes ingresar esto:
$ cargo new hola_cargo
$ cd hola_cargo
Verás este mensaje:
Created binary (application) `hola_cargo` package
Dentro del directorio hola_cargo verás:
Cargo.toml src
Hay dos archivos ocultos también: .git y .gitignore
Cargo.toml es un archivo con la información de la configuración de tu programa.
src es el directorio que contiene un sólo archivo: main.rs, que contiene...un hola mundo! Cargo buscará en este directorio todo el código fuente de tu programa.
Compilando un proyecto de Cargo[edit]
$ cargo build
Compiling hola_cargo v0.1.0 (/Users/tu/Rust/hola_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 5.42s
Ahora fíjate en tu directorio, verás esto:
Cargo.lock Cargo.toml src target
Cargo.lock Contiene información detallada de tus dependencias. No deberías editarlo manualmente, pero puedes ver lo que produce un proyecto vacío acá.
Dentro del directorio target encontrarás:
CACHEDIR.TAG debug
CACHEDIR.TAG es un archivo que contiene identificación de información almacenada en un cache.
Dentro del directorio debug está el archivo ejecutable que puedes correr para ver el mensaje "Hello, world!". Hay otros archivos que produce cargo dentro del directorio debug.
Compilando y ejecutando a la vez con cargo[edit]
Puedes compilar y ejecutar después el archivo con el siguiente comando:
cargo run
Mientras, el comando check revisa si tu código está correcto pero no produce un ejecutable:
cargo check
Checking hola_cargo v0.1.0 (/Users/tu/Rust/hola_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.23s
En general es una buena práctica estar haciendo cargo check para estar seguros(as) de que tu código está correcto, y como no produce un ejecutable, es más rápido que compilarlo.
Release[edit]
Cuando estás listo(a) para producir un archivo ejecutable para distribución, puedes hacer cargo build --release. Esto le aplicará las optimizaciones y producirá un ejecutable en un directorio nuevo release en vez de debug.