0.2 El primer conjuro
Esta traducción fue asistida por IA y revisada superficialmente. Si encuentras errores o algo no suena natural, escríbeme - lo agradezco.
El taller está listo. Eso apenas importa - la preparación solo establece el silencio. Algunas cosas existen únicamente cuando se nombran; en este taller, nombrar es crear. El primer conjuro siempre es demasiado corto y siempre es exacto - es el que convierte la posibilidad en presencia.
Lo que necesitas
El taller está equipado, pero tq todavía no existe. Ni como archivo, ni como proyecto - en
absoluto. Antes de que se pueda construir algo, debe haber un lugar donde construirlo. En el
mundo de Rust, ese lugar es un paquete - un directorio con código fuente y un manifiesto
que describe qué se está construyendo y cómo se llama.
La construcción
cargo new crea un paquete. Un comando, y la estructura está lista:
cargo new tq
Cargo confirma el éxito:
Created binary (application) `tq` package
El directorio actual ahora contiene:
tq/
├── Cargo.toml
└── src/
└── main.rs
Dos archivos. Uno describe el paquete, el otro contiene el código.
Cargo.toml es el manifiesto. Cargo lo lee en cada compilación:
[package]
name = "tq"
version = "0.1.0"
edition = "2024"
name es el nombre del artefacto. version es su versión. edition es la versión del
lenguaje; 2024 es la actual para proyectos nuevos y no hay razón para cambiarla.
Cargo generó src/main.rs por sí solo:
fn main() {
println!("Hello, world!");
}
fn main() es el punto de entrada: todo programa Rust empieza aquí. println! imprime una
línea en el terminal. Ejecútalo:
cargo run
Compiling tq v0.1.0 (.../tq)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.42s
Running `target/debug/tq`
Hello, world!
Cargo compiló el código y ejecutó el resultado. Por ahora, tq habla con voz ajena. Abre
src/main.rs y reemplaza la línea:
fn main() {
println!("Hello, tq!");
}
cargo run
Compiling tq v0.1.0 (.../tq)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.38s
Running `target/debug/tq`
Hello, tq!
El resultado
tq existe. Tiene nombre, lugar y voz - modesta por ahora, pero real.
El código
tqde este capítulo está en0-the-workshop/02-the-first-incantation/.
Lore: Qué hace cargo run
cargo run son tres pasos en secuencia: verificar el código, compilarlo, ejecutar el
resultado. Si el código no ha cambiado desde la última compilación, Cargo omite la
compilación - la línea Finished aparece casi al instante, sin Compiling.
El archivo compilado vive en target/debug/tq. Puedes ejecutarlo directamente:
./target/debug/tq
Mismo resultado. cargo run solo te ahorra tener que recordar la ruta.
Lore: edition
Rust se publica cada seis semanas, pero la sintaxis del lenguaje cambia raramente y solo a
través de editions - puntos declarados de incompatibilidad. edition = "2024" significa
que el paquete usa las reglas del lenguaje de la edición 2024; este es el valor por defecto
desde Rust 1.85.
En proyectos más antiguos y en la mayoría de libros encontrarás edition = "2021" - la
edición anterior, que sigue siendo totalmente compatible. Distintos paquetes del mismo
proyecto pueden usar diferentes ediciones; Cargo sabe cómo combinarlos sin conflicto. Para
un proyecto nuevo, 2024 es la elección correcta.