10 points par GN⁺ 2026-03-04 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Le REPL a été entièrement réécrit en Zig, offrant un lancement instantané et une interface terminal riche, avec de nombreuses fonctions comme la copie dans le presse-papiers, l’autocomplétion par tabulation et la sauvegarde de l’historique
  • La commande de compilation vers une cible navigateur permet de générer un unique fichier HTML avec tout en ligne, exécutable même sans serveur
  • Les décorateurs ES standard TC39 sont entièrement pris en charge, ce qui permet d’utiliser les syntaxes récentes comme accessor, Symbol.metadata et addInitializer
  • De nombreuses améliorations de plateforme et de performances sont incluses, comme la prise en charge de Windows ARM64, l’optimisation des barrel imports, les options de nouvelle tentative pour les tests et un moteur JavaScriptCore plus performant
  • Dans l’ensemble, cette version améliore nettement l’expérience développeur, les performances et la compatibilité de Bun

Nouveau REPL

  • Le REPL a été remplacé par une implémentation native basée sur Zig, exécutable instantanément sans dépendance à des packages npm externes
    • Prise en charge de la coloration syntaxique, des raccourcis Emacs, de l’autocomplétion, de la sauvegarde de l’historique et de la saisie multiligne
    • Fournit des commandes intégrées comme .copy, .help, .exit et .editor
    • Conserve les déclarations const/let et prend en charge à la fois le top-level await et import/require

--compile --target=browser

  • bun build --compile --target=browser génère un HTML avec JavaScript, CSS et ressources intégrés en ligne
    • Les balises <script src="..."> et <link rel="stylesheet"> sont converties respectivement en code inline
    • Exécutable même dans un environnement file://, sans contrainte CORS
    • Prise en charge de TypeScript, JSX, React, CSS, ESM et CJS

Décorateurs ES standard TC39

  • Prise en charge complète des décorateurs standard Stage-3
    • Implémentation des spécifications récentes, dont le mot-clé accessor, Symbol.metadata et ClassMethodDecoratorContext
    • Prise en charge des décorateurs de champs, de méthodes et de classes, ainsi que des initialiseurs (addInitializer)
    • Les décorateurs expérimentaux existants de TypeScript (experimentalDecorators) continuent également de fonctionner

Prise en charge de Windows ARM64

  • Bun peut être exécuté et compilé sur Windows basé sur ARM64, comme les machines Snapdragon
    • Prise en charge de la compilation croisée avec la cible bun-windows-arm64
    • Utilisable de la même façon côté CLI et API

Optimisation des barrel imports

  • Détection automatique des structures de réexport via des barrel files comme import { Button } from 'antd'
    • Optimisation automatique si l’option "sideEffects": false est définie
    • Peut aussi être activée explicitement via l’option optimizeImports
    • En n’analysant que les sous-modules nécessaires, la vitesse de build peut être jusqu’à 2 fois plus rapide

Optimisation de la sortie du bundle

  • Réduction du nombre de closures et de l’utilisation de mémoire du tas dans les bundles ESM/CJS
    • Nombre d’objets réduit de 11 %, taille du tas réduite de 4 Mo, forte baisse du nombre de fonctions et d’objets d’environnement
    • Application automatique sans modification du code

bun test --retry

  • Possibilité de définir un nombre de nouvelles tentatives par défaut pour l’ensemble des tests (--retry N)
    • L’option { retry: N } définie sur un test individuel reste prioritaire
    • Le reporter JUnit XML enregistre chaque tentative sous la forme d’un <testcase> distinct

Amélioration de Bun.generateHeapSnapshot("v8")

  • L’option "arraybuffer" permet de renvoyer un heap snapshot sous forme d’ArrayBuffer
    • Supprime le surcoût de conversion en chaîne lors du traitement de snapshots volumineux

Mises à jour TLS et certificats

  • Amélioration des performances grâce à la prise en charge du keepalive pour mTLS et les connexions avec CA personnalisée
    • Les mêmes paramètres TLS sont dédupliqués dans un registre global
  • Les certificats racine ont été mis à jour vers NSS 3.119 (Firefox 147.0.3)
    • Suppression de 4 certificats racine CommScope

Mise à niveau du moteur JavaScriptCore

  • De nombreuses améliorations de performances, dont x168 sur le découpage de chaînes, x10,5 sur endsWith, x1,6 sur l’accès aux drapeaux RegExp, et jusqu’à x7 sur path.parse()
    • structuredClone est jusqu’à 25 fois plus rapide sur les tableaux et tableaux d’objets
    • Buffer.slice() et subarray() progressent d’environ 1,8 fois
    • Optimisations internes sur BigInt, les itérateurs de chaînes et les opérations sur entiers

Principales corrections de bugs

  • Résolution d’un problème de compatibilité des pipes avec les serveurs MCP Python asyncio (Bun.spawn)
  • Compatibilité Node.js : nombreuses corrections concernant AsyncLocalStorage, fs.watch, le traitement des en-têtes http, ainsi que des plantages liés au GC
  • API Bun : résolution de crashs et de fuites mémoire liés à spawn, plugin, sql et build
  • Amélioration générale de la stabilité de WebSocket, bun install, du parseur CSS, de bun shell et de l’environnement Windows
  • Vulnérabilités de sécurité : correction de l’injection d’en-têtes HTTP, de la traversée de chemin dans les tarballs et des fuites de flux S3

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.