Nouvelle version de Rust : ce qui a changé et pourquoi c'est important
La communauté des développeurs Rust a accueilli une nouvelle version majeure du langage, apportant des améliorations de performances tant attendues, la stabilisation d'API clés et l'extension des possibilités pour les systèmes embarqués et le développement web. Les innovations concernent à la fois le compilateur et la bibliothèque standard, rendant Rust encore plus attractif pour la création de logiciels hautement fiables et rapides.
Principaux changements dans la nouvelle version
La mise à jour se concentre sur trois axes : l'accélération de la compilation, la stabilisation des fonctionnalités expérimentales et l'amélioration de l'écosystème. Voici les points clés.
- Accélération du temps de construction. L'équipe de développement a optimisé les algorithmes internes du compilateur
rustc. Dans certains projets (notamment ceux utilisant intensivement les macros et les génériques), le temps de compilation a été réduit de 15 à 20 %. Cela a été rendu possible grâce à la refonte de la mise en cache des données intermédiaires et à l'amélioration de la parallélisation. - Stabilisation de
impl Traitdans les types de retour. Cette fonctionnalité tant attendue, permettant de retourner des fermetures et des types complexes sans spécifier explicitement leur nom, est désormais disponible de manière stable. Cela simplifie l'écriture de code fonctionnel et le travail avec les itérateurs. - Améliorations pour les systèmes embarqués. L'attribut
#[no_std]a été stabilisé pour un contrôle plus fin de l'allocateur mémoire. La prise en charge de nouvelles architectures a été ajoutée, y compris RISC-V avec extensions. - Nouvelles fonctionnalités de
cargo. Le gestionnaire de paquets a reçu un support intégré pour la publication d'artefacts binaires directement dans le registrecrates.io. Le système de résolution des dépendances a également été amélioré : il gère désormais plus précisément les conflits de versions. asyncexpérimental dans les traits. Bien que la fonctionnalité reste instable, la nouvelle version étend considérablement la prise en charge des traits asynchrones. Les développeurs de services web et d'applications réseau peuvent déjà tester cette fonctionnalité via le canal nightly.
Impact sur les développeurs
Cette nouvelle version de Rust est particulièrement importante pour les équipes travaillant sur des systèmes performants et des dispositifs embarqués. L'accélération de la compilation réduit directement le temps du cycle de développement, tandis que la stabilisation de impl Trait simplifie le refactoring de projets complexes. Pour les développeurs web utilisant Rust (par exemple avec les frameworks Actix ou Axum), les améliorations du travail avec async signifient une transition plus fluide vers les traits asynchrones à l'avenir.
De plus, plusieurs nouveaux outils sont apparus dans l'écosystème. En particulier, l'utilitaire cargo-update peut désormais vérifier automatiquement la disponibilité de mises à jour pour toutes les dépendances d'un projet, simplifiant ainsi la maintenance de la sécurité du code.
Et ensuite ?
L'équipe Rust a annoncé une feuille de route pour le prochain trimestre. Les plans incluent la stabilisation complète des traits asynchrones, l'introduction d'un nouveau mécanisme d'inférence de types pour les macros et l'amélioration de la prise en charge des DLL sous Windows. Il est recommandé aux développeurs de mettre à jour leur compilateur vers la dernière version via rustup update stable et de tester les nouvelles fonctionnalités dans leurs projets.
Pour le portail éducatif PythonLib, cette version est également importante : elle démontre comment les langages de programmation système modernes (dont Rust) intègrent les meilleures pratiques du monde des langages de haut niveau.