El ecosistema de Rust
El ecosistema de Rust se compone de varias herramientas, entre las que se incluyen las siguientes:
-
rustc
: el compilador de Rust que convierte archivos.rs
en binarios y otros formatos intermedios. -
cargo
: the Rust dependency manager and build tool. Cargo knows how to download dependencies, usually hosted on https://crates.io, and it will pass them torustc
when building your project. Cargo also comes with a built-in test runner which is used to execute unit tests. -
rustup
: the Rust toolchain installer and updater. This tool is used to install and updaterustc
andcargo
when new versions of Rust are released. In addition,rustup
can also download documentation for the standard library. You can have multiple versions of Rust installed at once andrustup
will let you switch between them as needed.
Puntos clave:
-
Rust cuenta con un programa de lanzamiento rápido en el que se publica una nueva versión cada seis semanas. Las nuevas versiones mantienen la retrocompatibilidad con las versiones anteriores, además de habilitar nuevas funciones.
-
Hay tres canales de lanzamiento: “stable”, “beta” y “nightly”.
-
Las funciones nuevas se prueban en “nightly”, y “beta” es lo que se convierte en “estable” cada seis semanas.
-
Las dependencias también pueden resolverse desde [registros] alternativos, git, carpetas, etc.
-
Rust también tiene varias [ediciones]: la más actual es Rust 2021. Las ediciones anteriores son Rust 2015 y Rust 2018.
-
Las ediciones pueden introducir cambios de incompatibilidad con versiones anteriores en el lenguaje.
-
Para evitar que se rompa el código, las ediciones son opcionales: selecciona la edición para tu crate a través del archivo
Cargo.toml
. -
Para evitar la división del ecosistema, los compiladores de Rust pueden mezclar el código escrito para distintas ediciones.
-
Hay que mencionar que es bastante raro utilizar el compilador directamente y no a través de
cargo
(la mayoría de los usuarios nunca lo hacen). -
It might be worth alluding that Cargo itself is an extremely powerful and comprehensive tool. It is capable of many advanced features including but not limited to:
- Estructura del proyecto/package
- workspaces
- Manejo/Caché de Dependencias de Desarrollo y de Runtime
- Consulta el libro Rust Reference.
- global installation
- Consulta más información en el [libro oficial de Cargo].
-
Read more from the official Cargo Book
-