Prise en charge de Windows
- Bun peut être exécuté sur Windows 10 et versions ultérieures
- 98 % de la suite de tests de Bun réussit sur macOS, Linux et Windows
- Inclut un gestionnaire de paquets compatible npm intégré, avec une installation d’une app Vite React 18 fois plus rapide que
yarn et 30 fois plus rapide que npm
- Prise en charge d’une exécution de scripts plus rapide sur Windows via le format de fichier
.bunx
- Optimisation des API Node.js sur Windows en utilisant les appels système les plus rapides
- Ex. :
fs.readdir() est 58 % plus rapide que sur Node.js
Bun est un runtime JavaScript
- Prise en charge de JavaScript, TypeScript et JSX
- Les outils en ligne de commande comme
tsc sont jusqu’à 2 fois plus rapides que dans Bun 1.0
- Bun Shell est désormais un shell cross-platform également disponible sur Windows
- Inclut des utilitaires de base comme
ls, rm, cat, etc.
- Il est possible d’exécuter le shell depuis JavaScript et TypeScript avec l’API
Bun.$
Bun.Glob
- Fournit une API Glob intégrée pour la correspondance de fichiers et de chaînes
- Similaire à
fast-glob et micromatch, mais avec une correspondance de chaînes 3 fois plus rapide
Bun.Semver
- Nouvelle API Semver pour analyser et trier des chaînes semver
- Similaire au paquet
node-semver, mais 20 fois plus rapide
Bun.stringWidth()
- Nouvelle API pour mesurer la largeur visuelle d’une chaîne dans le terminal
- Prend en charge les codes d’échappement ANSI, les caractères pleine chasse, les graphèmes et les emojis
server.url : permet d’obtenir l’URL d’un serveur HTTP créé avec Bun.serve() via la propriété server.url
server.requestIP() : permet d’obtenir l’adresse IP d’une requête HTTP via la méthode server.requestIP()
subprocess.resourceUsage() : permet d’accéder à l’utilisation CPU et mémoire d’un sous-processus créé avec Bun.spawn() via la méthode resourceUsage()
- Amélioration de la compatibilité Node.js
- Diverses API ont été améliorées, notamment l’API client
node:http2, la compatibilité avec Date.parse() et la prise en charge de fs.readdir() récursif
- IPC possible entre Bun et Node.js
- Prise en charge de certaines API Node.js non documentées
- Web API : prise en charge d’API Web standard comme
WebSocket, performance.mark(), fetch() avec compression Brotli et URL.canParse()
Bun est un gestionnaire de paquets compatible npm
bun install permet d’installer des paquets npm jusqu’à 29 fois plus vite
- Améliorations de fonctionnalités comme les scripts de cycle de vie,
trustedDependencies et bun pm trust
Bun est un bundler JavaScript
- Prise en charge du bundling de code exécutable sur Node.js avec
bun build --target=node
- Les fichiers TypeScript et JavaScript peuvent être compilés en exécutable autonome avec le flag
--compile
Bun est un test runner
- Fournit un module de test intégré avec la même API que Jest
- Ajout de nouveaux matchers
expect() et prise en charge du module mocking
Prise en charge intégrée de SQLite
- Prise en charge de SQLite avec une API inspirée de
better-sqlite3
- Améliorations de la prise en charge des requêtes multi-instructions, des messages d’erreur détaillés, de l’import de bases de données et du support intégré
Avis de GN⁺
- Bun est une boîte à outils JavaScript qui améliore fortement les performances tout en conservant la compatibilité avec Node.js, et son support de Windows lui permet désormais de toucher une communauté de développeurs plus large.
- Le test runner intégré et la prise en charge de SQLite permettent aux développeurs de travailler efficacement sans outils supplémentaires.
- Les performances rapides de Bun et l’expérience développeur améliorée peuvent se distinguer en particulier dans les projets de grande taille ou les applications sensibles aux performances.
- Malgré les nombreuses fonctionnalités et améliorations proposées par Bun, un développement continu et les retours de la communauté restent nécessaires pour atteindre une compatibilité complète avec le vaste écosystème de paquets Node.js.
- Une analyse supplémentaire est nécessaire pour voir comment les nouvelles fonctionnalités de Bun peuvent concurrencer ou coopérer avec les outils existants basés sur Node.js.
1 commentaires
Avis sur Hacker News
Liste impressionnante des changements de Bun
La fonctionnalité de macros de Bun
Questionnement sur les raisons d’utiliser Bun et Deno
Un grand fan de Bun
Évaluation de la nouvelle release de Bun
.jsd’un projet avec le runtime afin de produire un exécutable sans dépendances. C’est utile lorsqu’on veut distribuer un binaire unique à des utilisateurs, mais la taille du fichier reste actuellement assez importante (plus de 90 Mo pour un petit projet sous GNU/Linux).Demandes adressées à l’équipe de Bun
Participation d’un développeur de Bun
Questions sur la stabilité de Bun
segmentation fault) au runtime ou lors de l’installation de paquets.Modèle économique de Bun et financement VC