3 El entorno de Rust
En este capítulo conoceremos las herramientas básicas que forman parte del ecosistema de Rust. Veremos cómo instalar Rust, crear proyectos, compilar programas y acceder a la documentación oficial.
3.1 Instalación
La instalación recomendada se realiza mediante rustup, el gestor oficial de herramientas y versiones de Rust.
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | shEsto instalará:
El compilador
rustc.La herramienta de gestión
cargo.La biblioteca estándar, documentación y herramientas auxiliares.
3.2 Compilación y ejecución
En muchos lenguajes, un programa suele corresponderse con un único fichero fuente. En Rust incluso un programa sencillo se denomina típicamente proyecto, con un directorio propio y varios subdirectorios.
Se puede usar directamente el compilador rustc, pero lo normal es utilizar cargo, el sistema oficial de gestión de proyectos y paquetes de Rust. Integra compilación, ejecución, gestión de dependencias, tests y generación de documentación.
3.2.1 Crear un proyecto
Normalmente empezaremos un proyecto ejecutando
cargo new mi_proyecto
Esa orden crea, en el directorio actual, un subdirectorio llamado mi_proyecto con toda la estructura básica del proyecto. En mi_proyecto/src/main.rs escribe un holamundo, para usar como punto de partida.
A continuación veremos las órdenes para compilar y ejecutar nuestros programas. Todos estos comandos tendremos que ejecutarlos desde el directorio del proyecto. En este ejemplo, mi_proyecto.
3.2.2 Compilar y ejecutar
El comando:
cargo runcompila el proyecto y, si la compilación finaliza con éxito, ejecuta automáticamente el programa resultante. El ejecutable generado se almacena en el directorio ./target/debug/.
3.2.3 Solo compilar
El comando:
cargo buildcompila el proyecto y genera el ejecutable correspondiente, pero sin ejecutarlo. Por defecto, el ejecutable se almacena en el directorio ./target/debug/.
3.2.4 Compilación para distribución
El comando:
cargo build --releasegenera una versión optimizada del programa. La compilación suele requerir más tiempo, pero produce programas más rápidos y eficientes. El ejecutable resultante se almacena en el directorio ./target/release/.
Por defecto, el comando cargo run ejecuta la versión situada en ./target/debug/. Para compilar y ejecutar directamente la versión optimizada puede utilizarse:
cargo run --release3.3 Formato
La Rust Style Guide define un formato oficial para el código fuente, implementado por la herramienta rustfmt, usada de forma prácticamente universal. Basta ejecutar, en el directorio del proyecto:
cargo fmt.
3.4 Documentación
La principal referencia para aprender Rust es el libro The Rust Programming Language, de S. Klabnik, C. Nichols y C. Krycho.
Además de la edición impresa, existe una versión en HTML que puede consultarse de dos formas:
En su página web:
Mediante el comando:
rustup doc --bookEsto abre en nuestro navegador la copia local del libro instalada junto con Rust, por lo que no es necesario disponer de conexión a Internet.
3.5 Organización de proyectos en Rust
Rust y Cargo utilizan varios conceptos para organizar el código y estructurar proyectos de distinto tamaño. Los más importantes son crate, package y workspace.
Crate
Unidad básica de compilación en Rust. Puede corresponder a un programa ejecutable, cuyo punto de entrada se encuentra habitualmente en
main.rs, o a una biblioteca, definida normalmente enlib.rs.Package
Proyecto gestionado por Cargo. Se identifica mediante un fichero
Cargo.toml, donde se almacenan datos como el nombre del proyecto, su versión, las dependencias utilizadas y diversas opciones de configuración. Un package puede contener uno o varios crates.Workspace
Conjunto de packages gestionados conjuntamente. Resulta especialmente útil en proyectos grandes, donde diferentes componentes se desarrollan y compilan de forma coordinada.