Bun continue d’avaler la chaîne d’outils JavaScript. La version 1.4.4 du runtime, publiée le 22 octobre, embarque deux commandes qui visent directement des outils installés dans presque tous les projets : bun fmt, un formateur compatible Prettier, et bun check, une vérification de types TypeScript. La note de version publiée sur le blog de Bun détaille aussi une refonte du client SQL. Tour d’horizon de ce qui change pour une équipe de développement web, et de ce qu’il faut vérifier avant d’adopter ces outils.
Plan de l'article
bun fmt : un formateur qui lit votre configuration Prettier #
Le premier argument de bun fmt est la compatibilité. Il lit les fichiers .prettierrc, prettier.config.*, la clé "prettier" du package.json, le .editorconfig et le .prettierignore. Il reconnaît aussi la configuration d’oxfmt, l’autre formateur rapide du moment. Autrement dit, il n’y a en principe rien à réécrire pour l’essayer sur un dépôt existant.
La couverture des langages est large : JavaScript, TypeScript, JSX, CSS, SCSS, HTML, Vue, Svelte, Angular, JSON, YAML, Markdown, MDX ou GraphQL. Les fonctions des plugins Prettier les plus courants, celui de Tailwind CSS, celui qui trie le package.json et celui de Svelte, sont intégrées directement, mais désactivées par défaut.
Quelle fidélité au rendu de Prettier ?
C’est la vraie question pour une équipe : un formateur qui ne produit pas exactement le même résultat que l’outil précédent génère un énorme diff au premier passage. Selon l’équipe de Bun, bun fmt donne un résultat identique sur 9 648 des 9 731 tests de formatage de Prettier 3.9.9, soit 99,1 %. Sur des dépôts open source réels, le taux d’exécutions identiques tombe toutefois à 77 % face à Prettier, et 94,6 % face à oxfmt. Bun assume certains écarts : dans quelques cas, Prettier modifiait le sens du code, ce que bun fmt refuse de faire.
La conclusion pratique est simple : sur un projet existant, il faut lancer un premier formatage sur une branche dédiée, relire le diff, puis le fusionner seul, sans autre changement, pour ne pas polluer l’historique.
Des temps d’exécution en millisecondes
Côté vitesse, les chiffres publiés sont spectaculaires. Sur le dépôt de Prettier lui-même, 2 616 fichiers, la vérification prend 59,7 ms avec bun fmt contre 17,1 secondes avec Prettier 3.9.10, d’après les mesures de Bun. Face à oxfmt, le gain annoncé va de 3 à 6 fois selon les projets. Ce sont des mesures de l’éditeur, sur ses machines : elles méritent d’être reproduites sur votre propre code avant d’en faire un argument.
Pour l’intégration continue, l’option --check liste les fichiers mal formatés sans rien écrire et renvoie un code d’erreur s’il en reste. L’option --staged cible les fichiers indexés, ce qui en fait un candidat naturel pour un hook pre-commit.
bun check : la vérification de types dans le runtime #
Deuxième nouveauté, bun check vérifie les types TypeScript et renvoie des diagnostics au format habituel, avec les codes d’erreur TS que les développeurs connaissent. La note indique qu’il suit TypeScript 7.1. Sur la documentation de la bibliothèque MUI, la vérification passe de 10,28 secondes à 1,31 seconde, et la mémoire maximale de 11,2 Go à 1,3 Go, selon les mesures de l’équipe. Le gain est plus modeste sur d’autres projets : 2,2 fois sur Supabase Studio, 1,4 fois sur VS Code.
Pour les monorepos, l’option -b gère les références entre projets. C’est là que le gain peut changer le quotidien : une vérification de types qui tombe sous la seconde peut tourner à chaque sauvegarde plutôt qu’une fois par pipeline.
Bun.SQL : moins de CPU par requête #
La troisième grosse partie de la version concerne Bun.SQL, le client de base de données intégré. Bun annonce jusqu’à 48 % de CPU en moins par requête, un chiffre mesuré sur un SELECT ponctuel avec PostgreSQL. Les gains sont plus faibles sur les autres opérations : 30 % pour un SELECT de 100 lignes, 21 % pour un INSERT. La refonte apporte aussi l’annulation de requête avec PostgreSQL et la prise en charge des flux COPY.
Ce qu’il faut surveiller avant de migrer #
Tout n’est pas qu’ajout. La note signale un changement de comportement dans Bun.Glob, qui prend désormais en charge les motifs extglob : certains motifs ne signifient plus la même chose qu’en 1.4.3. Les scripts qui sélectionnent des fichiers avec des parenthèses dans leur nom sont à relire. Autre point, les plugins Prettier non pris en charge, comme celui de la JSDoc, provoquent une erreur explicite plutôt qu’un formatage partiel : c’est sain, mais cela bloque un pipeline qui en dépend.
La mise à jour se fait avec bun upgrade. Le code source et l’historique des versions restent consultables sur le dépôt GitHub de Bun, et la documentation de Prettier reste la référence pour comprendre les options reprises par bun fmt.
Une compétence à suivre pour les développeurs #
Au-delà des performances, cette version confirme une tendance de fond : les runtimes JavaScript veulent devenir des boîtes à outils complètes, du gestionnaire de paquets au formateur en passant par le test et la vérification de types. Pour un développeur en formation comme pour une équipe en poste, la compétence utile n’est pas de connaître une commande de plus, mais de savoir évaluer un outil : mesurer sur son propre code, isoler le diff de migration, garder une porte de sortie. Prettier et TypeScript ne disparaissent pas pour autant, et c’est justement leur compatibilité qui rend l’essai peu risqué.




