1 points par GN⁺ 2025-01-25 | 1 commentaires | Partager sur WhatsApp

Mise à jour de Bun 1.2

  • Bun 1.2 améliore fortement la compatibilité avec Node.js, tout en intégrant une API de stockage d’objets S3 et un client Postgres. bun install utilise désormais un bun.lock au format texte. Les performances d’Express sont multipliées par 3.

Compatibilité Node.js

  • Bun a été conçu comme un remplaçant de Node.js et améliore sa compatibilité en exécutant la suite de tests de Node.js.
  • En corrigeant les différences dans les API internes et les messages d’erreur, il passe désormais plus de 90 % des tests des modules Node.js.

Serveur HTTP/2 et autres modules

  • Il est possible de créer un serveur HTTP/2 avec node:http2, ce qui est également nécessaire pour les serveurs gRPC.
  • node:dgram permet de lier et connecter des sockets UDP.
  • node:cluster permet de créer plusieurs instances de Bun afin de traiter les tâches en parallèle.
  • Le module node:zlib a été réécrit en code natif, avec des performances doublées.

Prise en charge de S3

  • Bun 1.2 intègre l’API S3 pour lire, écrire et supprimer des fichiers.
  • Le client S3 de Bun est écrit en code natif et est 5 fois plus rapide que celui de Node.js.

Prise en charge de Postgres

  • Bun.sql permet d’exécuter des requêtes SQL tout en évitant les injections SQL.
  • Bun.sql est 50 % plus rapide que les autres clients Postgres.

Gestionnaire de paquets

  • bun install utilise désormais un bun.lock textuel, ce qui le rend plus rapide et réduit les conflits de fusion.
  • Il est possible d’utiliser des commentaires et des virgules finales dans package.json.
  • Le fichier .npmrc peut être lu pour configurer le registre npm.

Exécuteur de tests

  • Bun fournit un exécuteur de tests intégré, ce qui facilite l’écriture et l’exécution des tests.

1 commentaires

 
GN⁺ 2025-01-25
Avis sur Hacker News
  • Certains utilisateurs s’interrogent sur l’inclusion de bibliothèques externes dans la bibliothèque principale et estiment qu’il vaudrait mieux les laisser optionnelles

    • Un runtime devrait être très prudent avant d’ajouter des éléments à la bibliothèque standard, car ce qui est déjà inclus peut compliquer le projet
  • Certains disent avoir eu une très bonne expérience avec Bun

    • Configurer TypeScript, Jest, React et Webpack était fastidieux, mais Bun est simple et efficace
    • Ils ne se prononcent pas sur l’intégration de bibliothèques externes, mais notent que le projet se concentre généralement sur ce qui est le plus demandé
  • Certains estiment que le comportement par défaut est trop magique

    • Par exemple, fournir à l’utilisateur une URL pré-signée au lieu de télécharger directement un fichier S3 est un choix surprenant
    • Il n’est pas clair comment désactiver ce comportement
  • Certains pensent que les fonctionnalités intégrées font une grande différence

    • Ils apprécient que les Web API soient incluses par défaut dans les runtimes V8 et WebKit
    • Mais S3 va peut-être trop loin ; les pilotes SQL se comprennent, mais il faut réfléchir jusqu’où pousser l’intégration
    • L’ajout d’API sensibles pourrait faire passer à côté de problèmes de sécurité
  • Certains indiquent qu’un de leurs clients utilise Bun en production et que l’expérience de développement est excellente

    • L’expérience développeur peut jouer un rôle majeur sur le long terme
    • Une mauvaise base de code ou de mauvais processus peuvent faire fuir de bons talents
  • Certains trouvent que la liste des fonctionnalités de Bun est si longue qu’ils doutent que tout soit solide et exempt de bugs

    • Du point de vue de la gestion de projet, ils ne comprennent pas qu’on consacre du temps au support de S3
    • Gagner des utilisateurs de Next.js serait probablement une meilleure voie de croissance
  • Bun 1.2 ajoute la prise en charge des imports HTML

    • Cela permet de remplacer toute une chaîne d’outils frontend par une seule instruction import
    • Certains trouvent cette fonctionnalité très impressionnante et élégante
  • Certains racontent que leur première utilisation de Bun a été une expérience très impressionnante

    • Configurer Webpack ou Vite était pénible, mais Bun a fonctionné immédiatement
    • Cela ne valait pas la peine de configurer tout cela pour de petits scripts, alors que Bun a très bien fait le travail
  • Certains pensaient qu’il échouerait comme alternative à Node.js, mais ont été satisfaits après avoir essayé Bun

    • Ils ont pu créer facilement des scripts autonomes pour gérer TypeScript et des mises à jour de bases SQLite
    • Ils l’ont aussi utilisé sur de nouveaux projets JS/TypeScript, où tout a fonctionné rapidement
  • Certains jugent le processus d’assurance qualité trop formel

    • Il semble que des changements aient été fusionnés et publiés alors que le build ne passait pas
    • Si les tests sont instables, il sera difficile de suivre les régressions