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 pour rustc 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 à jour rustc et cargo 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 et rustup 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 :

    • Pour en savoir plus, vous pouvez lire le livre officiel de Cargo - en anglais