9 points par GN⁺ 2025-10-19 | 5 commentaires | Partager sur WhatsApp
  • Bun 1.3 est une version majeure où l’environnement d’exécution JavaScript full-stack prenant en charge à la fois le développement frontend et backend franchit une nouvelle étape
  • Des fonctionnalités clés ont été intégrées, comme un serveur de développement frontend intégré avec bundle React et CSS, ainsi que des clients MySQL·PostgreSQL·SQLite·Redis
  • La prise en charge de la compilation en exécutable unique via bun build, ainsi que de la signature de code et de la compilation croisée, améliore la facilité de déploiement
  • Le gestionnaire de paquets introduit des fonctions adaptées aux grands monorepos, comme les installations isolées (isolated installs), l’API de scanner de sécurité et le catalogue de dépendances (catalog)
  • Des améliorations majeures ont été apportées à presque tous les domaines — test runner, Web API, sécurité, compatibilité Node.js, performances — faisant de Bun une « plateforme d’exécution complète »

Intégration d’un runtime full-stack

  • Bun 1.3 intègre à Bun.serve() des fonctions de développement full-stack comme l’exécution HTML, le routage, le hot reload et WebSocket
    • Prise en charge de React Fast Refresh et du HMR natif
    • Le backend et le serveur frontend sont unifiés dans un seul processus, ce qui résout fondamentalement les problèmes de CORS
  • Avec bun build --compile, il est possible de regrouper frontend et backend dans un exécutable unique

Prise en charge des bases de données et de Redis

  • Bun.SQL prend en charge MySQL·MariaDB·PostgreSQL·SQLite via une API unique
    • Le helper sql.array permet de gérer facilement les types tableau de PostgreSQL
    • Améliorations fines : connexions par socket de domaine Unix, protocole de requête simple, gestion des valeurs null, etc.
  • Ajout d’un client Redis intégré, avec jusqu’à 7,9 fois plus de performances qu’ioredis et une prise en charge complète de Pub/Sub

Bundler et fonctions de build

  • L’API Bun.build() permet de générer des exécutables depuis le code
  • Prise en charge de la signature de code (macOS·Windows), de la compilation croisée (Linux/macOS/Windows) et de la configuration des métadonnées
  • Un minifier plus intelligent supprime le code inutilisé et prend en charge les options de configuration JSX ainsi que les motifs Glob

Extension des fonctions de gestion de paquets

  • Les isolated installs sont appliquées par défaut, chaque workspace n’ayant accès qu’à ses propres dépendances
  • La fonction Catalog permet de gérer centralement les versions de dépendances dans un monorepo
  • L’API de scanner de sécurité et minimumReleaseAge renforcent la défense contre les attaques sur la supply chain
  • Des outils de gestion au niveau de npm·pnpm sont fournis, comme bun why, bun update --interactive, bun info, bun audit

Améliorations du test et du débogage

  • bun test ajoute l’intégration à VS Code Test Explorer, les tests parallèles (test.concurrent), l’exécution aléatoire et les tests de type (expectTypeOf)
  • Prise en charge des chaînes .failing, .serial, .each et préservation automatique de l’indentation dans les snapshots
  • Blocage de test.only en environnement CI et meilleure cohérence de l’ordre des tests

Renforcement des Web API et des standards du runtime

  • Parsing/sérialisation YAML intégrés, avec import direct possible des fichiers .yaml
  • L’API request.cookies prend en charge la gestion automatique des cookies
  • Prise en charge de helpers de flux comme ReadableStream .text()/.json(), de la compression Zstandard et du chargement en streaming de WebAssembly
  • L’implémentation de DisposableStack/AsyncDisposableStack simplifie la libération des ressources

Sécurité et fonctions système

  • Bun.secrets permet d’utiliser les stockages sécurisés du système d’exploitation (Keychain, etc.)
  • Bun.CSRF fournit une API de génération et de validation de jetons CSRF
  • Le module crypto est 400 fois plus performant, avec des améliorations pour Diffie-Hellman, HKDF et les calculs sur les nombres premiers

Compatibilité Node.js améliorée

  • Plus de 800 tests Node.js supplémentaires sont désormais réussis, avec une prise en charge fortement étendue de node:test, node:vm, worker_threads, fs, http2
  • Prise en charge complète de la plupart des modules cœur, dont require.extensions, process.binding(), contrôle des native addons, perf_hooks, tls, cluster
  • Compatibilité N-API de plus de 98 %, avec une identification du runtime au niveau de Node.js 24.3.0

Améliorations de l’expérience développeur

  • Modification de la configuration TypeScript par défaut ("module": "Preserve")
  • Variable d’environnement BUN_OPTIONS, --console-depth, --user-agent : davantage de contrôle sur le runtime
  • Prise en charge des scripts de preload (BUN_INSPECT_PRELOAD) et de SQL Preconnect
  • Amélioration de bunx permettant aussi d’exécuter des paquets dont le nom diffère de celui du binaire

Performances et stabilité

  • Réduction de l’utilisation CPU au repos, optimisation du GC, 10 à 30 % de mémoire en moins, 60 % de gain sur la vitesse de build
  • postMessage jusqu’à 500 fois plus rapide, bun install 2,5 fois plus rapide, Array.includes 2,8 fois plus rapide
  • Des optimisations au niveau WebKit·Zig accélèrent l’ensemble du runtime
  • Des centaines de corrections de bugs et de fuites mémoire résolues améliorent fortement la stabilité

Changements majeurs

  • Modification de la structure de types de Bun.serve() et renommage de static en routes
  • Le mode d’appel du client SQL passe d’un style fonctionnel à des tagged templates
  • Sous Linux, le signal GC est remplacé par SIGPWR
  • La version Node.js affichée passe de 22.x à 24.3.0

Bun 1.3 marque un tournant, dépassant le simple runtime pour s’imposer comme une « plateforme intégrée couvrant Node·Deno·Vite·pnpm »

5 commentaires

 
tsboard 2025-10-20

C’était bref, mais pour l’avoir essayé dès le début, je trouve que les progrès sont énormes, au point de me donner envie de le réessayer une fois de plus haha

 
kissdesty 2025-10-20

J’espère que ça évoluera bien.

 
truestar 2025-10-20

Je vois qu’il y avait un tel projet !!

 
click 2025-10-20

J’aime le fait que l’interface SQL ait été unifiée.

 
shakespeares 2025-10-19

Il doit y avoir une raison pour laquelle Vite ne l’a pas intégré, mais je serais curieux d’avoir des retours d’expérience sur Bun en usage réel.