- Le gestionnaire de paquets APT de Debian devrait intégrer du code écrit en Rust et ses dépendances à partir de mai 2026
- Dans un premier temps, l’intégration concernera le compilateur Rust, la bibliothèque standard et l’écosystème Sequoia
- Les parseurs de fichiers
.deb, .ar et .tar, ainsi que le code de vérification des signatures HTTP, constituent les principaux axes d’amélioration en matière de sûreté mémoire et de renforcement des tests unitaires
- Les ports ne disposant pas d’une toolchain Rust devront mettre en place un environnement Rust dans les 6 mois ou être abandonnés (sunset)
- Cette évolution s’inscrit dans une volonté de faire progresser l’ensemble du projet avec des outils et technologies modernes, sans rester bloqué par la compatibilité avec du matériel ancien
Projet d’introduction de code Rust dans APT
- Introduction prévue de code Rust et d’une dépendance forte (hard dependency) dans APT après mai 2026
- Cette introduction n’aura pas lieu avant mai 2026
- Le périmètre initial d’intégration se limite au compilateur Rust, à la bibliothèque standard et à l’écosystème Sequoia
Objectif : améliorer la qualité et la sûreté du code
- Le code d’analyse des fichiers
.deb, .ar et .tar, ainsi que le code de vérification des signatures HTTP, sont les principales cibles de l’introduction de Rust
- Il est précisé que ces domaines devraient bénéficier de manière importante des avantages d’un langage à sûreté mémoire et d’un cadre de tests unitaires renforcé
Exigences pour les mainteneurs de ports
- Les ports sans toolchain Rust devront mettre en place un environnement Rust dans les 6 mois
- Dans le cas contraire, ces ports pourraient être abandonnés (sunset)
Orientation du projet
- Le projet Debian souligne la nécessité d’évoluer en s’appuyant sur des outils et technologies modernes
- Il est explicitement indiqué que cette évolution ne doit pas être retardée par des tentatives de prise en charge de matériel ancien ou d’équipements de rétro-informatique
Autres informations
- L’auteur du message est Julian Andres Klode, développeur core de Debian et Ubuntu
- Le message a été publié sur la liste de diffusion des développeurs Debian, debian-devel
- Une signature PGP (
signature.asc) est jointe
- Aucune autre précision technique ni modification de calendrier n’est mentionnée
1 commentaires
Avis Hacker News
On dirait que le moment est enfin venu. Continuer à garder en C du code d’analyse de données non fiables devient une dette technique qui ne fait que grossir avec le temps
Rust n’est pas tellement plus difficile à écrire que le C, et si on recréait le C aujourd’hui en tenant compte de ce qu’on sait sur la conception des langages et la sécurité du code, on obtiendrait probablement quelque chose comme Rust
Si on peut abandonner le support de x86 32 bits pour des raisons pratiques, alors ces architectures aussi. Si on veut vraiment les maintenir, il faut développer soi-même un backend de toolchain Rust
Go s’en approchait un peu, mais il n’a jamais vraiment été envisagé pour un système central comme systemd. Je me demande s’il y a eu les mêmes débats quand C++, Python et Perl ont été ajoutés à l’époque
.deb,.ar,.taret le code de vérification des signatures HTTP bénéficieraient d’un langage memory-safe », mais je me demande quel avantage concret il y a à réécrire dans un nouveau langage des bases de code stabilisées depuis 30 ansEst-ce vraiment utile de jeter du code éprouvé au combat pour créer de nouveaux problèmes de compatibilité et de nouveaux bugs ?
La tendance à réécrire les systèmes cœur en Rust est forte, mais je doute que la sécurité s’améliore réellement quand on réécrit de vieux outils
Je comprends qu’il soit difficile d’introduire de nouveaux systèmes, mais on a toujours l’impression de conserver une structure empilée sur des décisions de conception héritées de l’ère du télégraphe
Premièrement, presque aucun nouveau contributeur ne veut travailler sur d’anciennes bases de code C/C++. En passant à Rust, il devient plus facile de faire venir de nouveaux développeurs
Deuxièmement, la fiabilité se valide par l’usage, mais la sécurité ne se valide que par l’attaque. On ne peut pas considérer qu’un vieux code a forcément traversé tous les vecteurs d’attaque. Il y a donc un argument fort en faveur d’un durcissement proactif
D’après le fil de discussion Debian, Rust est déjà indispensable sur la plupart des architectures de publication Debian
Le mail concerné cite seulement alpha, hppa, m68k et sh4 comme exceptions. Je me demande quel sera l’avenir de ces architectures
Rust propose une cible Tier 3 pour m68k, mais rien pour les autres architectures. J’aimerais connaître les cas d’usage réels
Il est surprenant qu’elles soient encore là alors que le x86 32 bits et MIPS ont disparu. J’ai bien une certaine nostalgie, mais je vois mal à quoi elles servent concrètement
LLVM a d’ailleurs eu un backend DEC Alpha par le passé, mais cela remonte à longtemps
J’aimerais que la communauté Rust, au lieu de s’immiscer dans des projets existants, construise directement des technologies modernes nouvelles pour faire ses preuves
Un projet indépendant comme Redox en est un exemple, et c’est dommage de ne pas pousser davantage ce genre d’initiative
Bien sûr, il existe des partisans extrêmes du « réécrivons-le en Rust », mais ce n’est pas le sujet ici
ripgrepest justement un bon exemple. C’est nouveau, et les gens l’aiment réellementUtiliser la bibliothèque standard de Rust ne me dérange pas, mais je n’ai pas envie de tirer 500 paquets cargo pour compiler un simple parseur deb
Il peut être raisonnable d’attendre que le port Rust-for-GCC se stabilise
Le noyau non plus ne rendra pas Rust obligatoire tant que le support GCC ne sera pas là.
S’il existe plusieurs implémentations, le langage paraîtra moins instable
En revanche, si on coupe maintenant le support de certaines architectures, la procédure de retour pourrait devenir compliquée plus tard lorsqu’une toolchain Rust existera
libcoreet en est au niveau de Rust 1.50. Il faudra probablement encore des années avant d’en faire un compilateur généralisterustc_codegen_gcca plutôt des chances d’être stabilisé avantJe rappelle que l’auteur du mail sur la discussion Rust de Debian est le mainteneur du paquet keepassxc
Il existe aussi des fils de discussion plus anciens sur son ton abrupt envers les développeurs upstream et les utilisateurs
Il est intéressant d’observer l’évolution de l’opinion d’une personne. Lien vers une déclaration précédente
Je pense que Rust n’est qu’un simple effet de mode (hype). Dans le monde de l’embarqué, le C reste roi.
En pratique, je n’ai jamais vu autour de moi quelqu’un utiliser Rust ou même l’envisager
Cela permet de conserver performances et efficacité mémoire tout en accélérant le développement.
Le seul inconvénient réel est la taille des binaires. Pour moi, l’avenir de Rust est déjà assuré
Cela dit, l’attrait ne vient pas seulement de la sécurité mémoire, mais de la qualité globale du langage et de la toolchain
Je pense qu’un environnement polyglotte ne fait qu’ajouter des problèmes.
Il faut des toolchains et des gestionnaires de paquets différents pour Python, Node, Go, Rust, etc., ce qui complique tout
On a supprimé les buffer overflows avec Node pour voir augmenter les attaques de la chaîne d’approvisionnement.
Autant repartir de zéro, et si l’on veut vraiment utiliser Rust à fond, il vaut mieux contribuer à Redox OS
Réécrire l’ensemble dans une seule langue est irréaliste, et pousser Redox n’est pas forcément plus efficace
Rust est déjà un langage largement éprouvé, et sa valeur tient aussi au fait qu’en tant que langage compilé, il offre moins de risques d’autodestruction au moment de modifier du code que le C
Abandonner de vieilles architectures n’a rien de déraisonnable non plus
Décider quels langages retirer ou ajouter relève des mainteneurs Debian