Rust 1.85 est sorti : ce qui a changé dans la nouvelle version
L'équipe de développement de Rust a présenté une nouvelle mise à jour stable du langage — la version 1.85. Cette version apporte plusieurs fonctionnalités très attendues qui simplifient l'écriture de code asynchrone, améliorent les performances et étendent la boîte à outils du développeur. Examinons les principaux changements.
Stabilisation des async closures
L'un des événements majeurs est la stabilisation des async closures — des fermetures qui peuvent être asynchrones. Auparavant, pour renvoyer une fermeture asynchrone, il fallait écrire manuellement des signatures complexes avec impl Future. Désormais, le compilateur prend en charge la syntaxe :
- async || { ... } — déclaration directe d'une fermeture asynchrone.
- Fermeture automatique des variables avec prise en charge des durées de vie (lifetime).
- Compatibilité avec les traits
FnOnce,FnMutetFn.
Cela simplifie l'écriture de gestionnaires d'événements asynchrones, de middleware et de fonctions de callback dans les frameworks web (par exemple, Axum ou Actix).
Vérificateur d'emprunt amélioré
Dans Rust 1.85, l'analyseur d'emprunt a été considérablement amélioré. Il comprend désormais mieux les cas où une variable est utilisée après un déplacement partiel :
- Il est permis d'emprunter des champs individuels d'une structure, même si d'autres champs ont déjà été déplacés.
- Le traitement des emprunts imbriqués dans les itérateurs a été amélioré.
- Le nombre d'avertissements erronés dans le code avec des constructions conditionnelles a été réduit.
Cela est particulièrement utile lors du travail avec de grandes structures de données nécessitant une propriété partielle.
Nouvelles possibilités des macros
La version inclut une extension du système de macros (proc macros) :
- Ajout de la prise en charge des token streams avec possibilité de modifier les positions dans le code source.
- Simplification de la création de macros d'attribut pour les structures et les énumérations.
- Amélioration de la gestion des erreurs dans les macros — les messages s'affichent désormais avec l'indication précise de la ligne dans le code utilisateur.
Cela rendra le développement de bibliothèques pour la sérialisation (serde), le routage web et la génération de code plus flexible.
Optimisation du compilateur et améliorations dans cargo
Les développeurs ont poursuivi le travail sur les performances de compilation :
- Compilation incrémentielle accélérée pour les grands projets (jusqu'à 15 % plus rapide).
- Ajout de la prise en charge de l'analyse parallèle des dépendances dans
cargo check. - Amélioration de la mise en cache des artefacts intermédiaires dans
cargo build.
Une nouvelle commande cargo info est également apparue dans cargo, qui affiche des informations détaillées sur un package du registre (versions, dépendances, licence) sans nécessité de le télécharger.
Corrections de sécurité et stabilité
Dans la version 1.85, plusieurs vulnérabilités liées au traitement de code non sécurisé (unsafe) ont été corrigées. Des erreurs de gestion de la mémoire lors de l'utilisation de std::mem::transmute et MaybeUninit ont été résolues. L'équipe Rust recommande à tous les utilisateurs de mettre à jour pour garantir la sécurité de leurs projets.
Comment mettre à jour
La mise à jour est disponible via l'installateur officiel rustup. Pour installer la nouvelle version, exécutez la commande :
Recommended Libraries
Autres actualités
Vulnérabilité critique dans une bibliothèque TypeScript : une menace pour des millions de projets
Vulnérabilité critique dans la bibliothèque Go net/http : une menace pour des millions de serveurs
Les grandes entreprises passent à Go (Golang) : tendance 2025
Conférence Swift 2025 : les principales annonces pour les développeurs iOS et macOS