0 : nouveautés concrètes pour les développeurs Rust 1. 0 apporte array_windows, include dans Cargo et TOML 1. 1 pour des configs plus lisibles et une meilleure organisation. 0 marque une étape pragmatique pour les développeurs, en améliorant des outils et des surfaces de configuration utilisées au quotidien.
Rust 1.94.0 marque une étape pragmatique pour les développeurs, en améliorant des outils et des surfaces de configuration utilisées au quotidien. Cette version ne réinvente pas le langage, mais elle apporte des ajouts concrets qui rendent l'écriture du code et l'organisation des projets plus fluide.
Une API robuste pour les fenêtres sur slices
La nouvelle API array_windows permet d'itérer sur des slices en blocs de taille fixe. Concrètement, elle facilite l'examen de motifs dans les données et simplifie certains algorithmes de traitement par fenêtres. Exemple typique :
for win in data.array_windows::<3>() {
// traitement sur chaque fenêtre de 3 éléments
}
Cette approche évite des constructions manuelles et offre une syntaxe explicite pour travailler sur des segments contigus, ce qui peut améliorer la lisibilité et les performances lorsque l'on manipule des séries temporelles ou des flux de données.
Packaging et configuration : include dans Cargo
La gestion des fichiers de configuration gagne en prévisibilité grâce à la clé include dans Cargo. Cette option permet de spécifier quels fichiers et répertoires doivent être pris en compte lors de l’empaquetage d'un crate. Cela facilite l'organisation des projets multi-modules et évite d’inclure par erreur des éléments sensibles ou inutiles dans les paquets publiés.
[package]
name = "mon_crate"
version = "0.1.0"
include = ["src/**", "Cargo.toml", "README.md"]
Concrètement, cela rend les processus de build et de publication plus robustes et moins dépendants d'une structure de dossier particulière.
TOML 1.1 : tables inline multi-ligne et virgules finales
La prise en charge de TOML 1.1 apporte des améliorations syntaxiques utiles pour les configurations. Parmi les nouveautés notables :
- tables inline multiligne, qui permettent de structurer des ensembles de paires clé-valeur dans un seul bloc tout en restant lisibles
- virgules finales autorisées dans les tableaux et les tables, ce qui simplifie les ajouts successifs et les diffs de version.
Exemples concrets :
config = { enabled = true, retry = 5 }
# table inline multiligne (format plus lisible)
settings = {
path = "/var/log",
mode = "append"
}
# virgule finale autorisée dans un inline table
dependencies = { a = 1, b = 2, }
Pour les projets Rust, cela se traduit par des fichiers de configuration plus lisibles et plus faciles à maintenir, notamment lorsque les configurations évoluent fréquemment ou que des outils externes génèrent des blocs TOML.
Ce que cela change réellement
Ces améliorations ciblent le quotidien des équipes : des configurations plus lisibles et des publications de crates plus fiables grâce à un contrôle plus fin des fichiers inclus. L’API array_windows ouvre des logiciels et des scripts à des patterns de traitement plus déclaratifs, tandis que l’extension de Cargo et TOML 1.1 simplifient l’organisation des dépôts et la maintenance des configurations liées à la build et au déploiement.
Pour terminer
Rust 1.94.0 illustre une philosophie pragmatique : ajouter des outils qui s’imbriquent dans le flux de travail existant sans bouleverser les habitudes. Pour les équipes qui utilisent intensivement les configurations TOML et qui manipulent des flux de données en blocs, ces évolutions offrent déjà des gains significatifs en lisibilité et en productivité. Reste à voir comment les crates adoptent ces nouveautés dans les mois à venir.