Bun a fait passer son code de Zig vers Rust pour résoudre des problèmes complexes de gestion de la mémoire, de stabilité et de maintenance, tout en s'appuyant sur un flux de travail piloté par l'IA (notamment via Claude Fable) qui a rendu cette migration massive possible en un temps record. La manœuvre relance le débat sur la comparaison de Rust avec d’autres langages utilisés dans la filière de la programmation système (Zig, C, C++), ainsi que celui de la pertinence du vibe coding dans la filière du développement de logiciels. Bun est un moteur d’exécution initialement développé en Zig – un langage de programmation présenté comme un remplaçant potentiel du C. La tête derrière le projet vient d’annoncer le passage complet du code source de Zig vers Rust. Selon Jared Sumner, ce choix a été motivé par la nécessité de la mise à contribution de Rust pour corriger certaines tares de Zig, notamment en matière de gestion des accès à la mémoire.
Google a opéré une migration similaire de C++ vers Rust pour les mêmes raisons sous-jacentes : l’exploitation des avantages de Rust (en comparaison aux autres langages) en matière de sécurisation des accès à la mémoire. Mais certains acteurs de la filière sont d'avis que le véritable gage de sécurisation de la mémoire réside dans les aptitudes des programmeursBun 1.4
— Bun (@bunjavascript) August 20, 2026
- Fixes over 2,900 GitHub issues
- +1,517 tests from the Node.js test suite
- Reduces idle CPU by 5x
- Reduces memory usage by up to 35%
- Starts up to 50% faster on Linux
- Rewrites Bun in Rust
Thank you everyone who contributed since Bun 1.3!https://t.co/3YjnuhjE8s
Le billet de blog y relatif souligne entre autres des dizaines de bugs de type use-after-free (le noyau réutilise un pan de mémoire qu’il a déjà libéré), double-free (double utilisation de la fonction free() sur la même adresse mémoire) et fuites mémoire dans des modules critiques (node:zlib, node:http2, UDPSocket, crypto.scrypt, TLS…) dus à l’utilisation de Zig comme langage de programmation dans le processus de développement de Bun.
L’argument central est que Zig, comme le C, ne gère pas la mémoire pour le programmeur, et ne dispose pas de constructeurs/destructeurs. Le nettoyage repose sur le mot-clé explicite defer. Il est manuel et il faut donc penser à l’utiliser, rendant l’erreur humaine quasi inévitable à grande échelle. Google aussi a adopté Rust et rapporte avoir constaté une réduction de 1000 fois des vulnérabilités liées à la sécurité de la mémoire.
Mais Bjarne Stroustrup est d’avis que ce qu’il est possible d’obtenir du C++ en matière de sécurisation des logiciels dépend entre autres du développeur et notamment de la connaissance des outils que lui offre le langage, de sa maîtrise du compilateur, etc. En gros, le problème en matière de sécurisation de la mémoire se trouve entre la chaise et le clavier et d’avis de Bjarne Stroustrup c’est le programmeur.
En droite ligne avec cette position, le créateur du C++ propose donc des Profils qui ont pour but de définir des modes de C++ qui imposent des contraintes sur la manière dont le programmeur utilise le langage et la bibliothèque, afin de garantir certaines propriétés de sécurité. Il s'agit principalement de contraintes au moment de la compilation, bien que dans la pratique, certaines vérifications puissent être mises en œuvre à l'aide de fonctionnalités de bibliothèque qui ajoutent une surcharge d'exécution limitée.
Au lieu d'introduire des constructions de langage entièrement nouvelles, les Profils limitent principalement les fonctionnalités et les utilisations existantes. L'idée est que vous pouvez activer un profil, et tout code qui l'utilise accepte de se conformer aux restrictions. Si vous ne l'activez pas, tout fonctionne comme avant. Il est donc rétrocompatible.
Jared Sumner a envisagé le C++ pour cette initiative de migration mais a finalement opté pour le Rust et ses avantages en matière de sécurisation de la mémoire.
Le vibe coding via Claude Fable a joué un rôle prépondérant dans cette migration en permettant de la boucler en quelques jours. De l’autre côté, cette initiative est la preuve que l’expertise humaine reste requise pour obtenir des produits logiciels utilisables et maintenables sur le long terme après mise à contribution de l’IASo Bun 1.4, the first official release of the big Rust rewrite, is out. Seemingly better in basically every way, proven out through millions of Claude Code installations running for the last few months. Will be interesting to see how it does in a broader set of use cases.
— Paul Dix (@pauldix) August 20, 2026
Either…
La plus-value de l’utilisation de l’intelligence artificielle qui est en général mise en avant dans le processus du développement de logiciels est le gain de productivité. Le cas de la migration du code source Bun de Zig vers Rust ne fait pas exception étant donné que Jared Sumner rapporte que cette transition a été possible en seulement 11 jours contre une année pour une petite équipe d’ingénieurs lancée sur les 535 496 lignes de code de Zig, selon son estimatif.
Résultat :
- le code en Rust produit par l'IA contient plus de 13 000 blocs unsafe, soit une proportion anormalement élevée comparée aux projets écrits par des humains. Par exemple, la gestion de la mémoire de bas niveau et les allocateurs personnalisés s'interfacent directement avec les pointeurs bruts via des constructions non sécurisées (unsafe). Elle gère la provenance des pointeurs et les appels explicites de désallocation par le biais des tables virtuelles (vtables) des allocateurs standard comme on peut le voir dans la section de code suivante :...
| Code Rust : | Sélectionner tout |
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.