L'écosystème de Rust
L'écosystème de Rust est composé d'un certain nombre d'outils, dont les principaux sont :
-
rustc
: le compilateur Rust qui transforme les fichiers.rs
en binaires et autres formats intermédiaires. -
cargo
: le gestionnaire de dépendances Rust et l'outil de compilation. Cargo peut télécharger les dépendances, en général hébergées sur https://crates.io, et les rendre disponibles pourrustc
lors de la compilation de votre projet. Cargo intègre également un outil pour exécuter des tests unitaires. -
rustup
: le programme d'installation et de mise à jour de la chaîne d'outils Rust. Cet outil sert à installer et mettre à jourrustc
etcargo
lorsque de nouvelles versions de Rust sont publiées. De plus,rustup
peut également télécharger la documentation de la bibliothèque standard. Vous pouvez avoir plusieurs versions de Rust installées à la fois etrustup
vous permettra de basculer entre elles au besoin.
Points clés:
-
Rust a un calendrier de publication rapide : une nouvelle version est disponible toutes les six semaines. Les nouvelles versions maintiennent la rétrocompatibilité avec les anciennes versions --- en plus, elles proposent de nouvelles fonctionnalités.
-
Il existe trois types de publication : "stable", "beta" et "nightly".
-
Les nouvelles fonctionnalités sont testées sur "nightly". "beta" est ce qui devient "stable" toutes les six semaines.
-
Les dépendances peuvent aussi être obtenues sur des dépôts alternatifs, via
git
, dans des répertoires système, et autres. -
Rust a également des éditions : l'édition actuelle est Rust 2021. Les éditions passées étaient Rust 2015 et Rust 2018.
-
Les éditions sont autorisées à apporter des modifications non rétrocompatibles au langage.
-
Pour éviter de casser vos dépendances et empêcher la compilation de votre projet, les éditions sont laissées au choix : vous sélectionnez l'édition pour chaque crate via le fichier
Cargo.toml
. -
Pour éviter de diviser l'écosystème, les compilateurs Rust peuvent mélanger du code écrit pour différentes éditions.
-
Veuillez noter qu'il est assez rare d'utiliser le compilateur directement et non via
cargo
(la plupart des utilisateurs ne le font jamais). -
Il peut être utile de mentionner que Cargo est un outil extrêmement puissant et complet. Il est capable de nombreuses fonctionnalités avancées, y compris, mais sans s'y limiter :
- Structure du projet/paquets
- Espaces de travail
- Gestion/mise en cache des dépendances de développement et des dépendances d'exécution
- Créer des scripts
- Installation globale
- Il est également extensible avec des plugins de sous-commande (tels que cargo clippy).
-
Pour en savoir plus, vous pouvez lire le livre officiel de Cargo - en anglais
-