Outil CLI
oven-sh/bun avatar
oven-sh/bun

Bun : réunir l’exécution et les outils JavaScript

Un environnement d’exécution JavaScript rapide, avec bundler, outil de test et gestionnaire de paquets.

95 971 étoiles5 043 forksRustLa licence varie

En bref

De quoi s’agit-il ?
Ce que Bun : réunir l’exécution et les outils JavaScript permet, ses limites et les vérifications adaptées à son usage.
À qui s’adresse-t-il ?
Convient aux lecteurs dont le besoin correspond précisément au périmètre de Bun : réunir l’exécution et les outils JavaScript. Ne convient pas à ceux qui déduisent une garantie de production d’une simple démonstration.
Puis-je l’utiliser commercialement ?
À vérifier. La licence de ce dépôt n’entre pas dans les catégories que nous classons automatiquement : lisez son fichier LICENSE avant tout usage commercial.
Est-il encore maintenu ?
Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
En quel langage est-il écrit ?
Principalement Rust, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Bun : réunir l’exécution et les outils JavaScript : Bun en tant qu'exécutable unique

Le README commence par décrire Bun comme une boîte à outils tout-en-un pour les applications JavaScript et TypeScript, livrée sous la forme d'un exécutable unique nommé `bun`. Cet exécutable combine un runtime, un bundler, un exécuteur de tests et un gestionnaire de paquets compatible Node.js. L'objectif déclaré du projet est qu'au lieu de maintenir 1 000 node_modules pour le développement, vous n'ayez besoin que de `bun` ; ses outils intégrés seraient nettement plus rapides que les options existantes et utilisables dans des projets Node.js existants avec peu ou pas de modifications.

Bun : réunir l’exécution et les outils JavaScript : Le runtime : Rust et JavaScriptCore

Au cœur de Bun se trouve le runtime Bun, décrit comme un runtime JavaScript rapide conçu pour remplacer Node.js en tant que remplacement direct. Il est écrit en Rust et propulsé en interne par JavaScriptCore, ce qui, selon le README, réduit considérablement les temps de démarrage et l'utilisation de la mémoire. Le runtime prend en charge TypeScript et JSX dès le départ ; l'exemple `bun run index.tsx` illustre l'exécution directe d'un fichier TypeScript. Le README ne fournit pas de chiffres de référence spécifiques, donc l'ampleur de ces améliorations n'est pas quantifiée dans le dépôt.

Bun : réunir l’exécution et les outils JavaScript : L'ensemble d'outils en ligne de commande

Outre le runtime, l'outil en ligne de commande `bun` implémente un exécuteur de tests, un exécuteur de scripts et un gestionnaire de paquets. Le README montre `bun test` pour exécuter des tests, `bun run start` pour exécuter le script `start` de package.json, `bun install <pkg>` pour installer un paquet, et `bunx cowsay 'Hello, world!'` pour exécuter un paquet. Ces exemples illustrent comment le même binaire remplace des outils distincts comme `node`, `jest`, `npm` et `npx`. Le README ne liste pas chaque sous-commande ; la documentation complète est couverte sur le site de documentation.

Bun : réunir l’exécution et les outils JavaScript : Installation et mise à jour de Bun

Bun prend en charge Linux sur x64 et arm64, macOS sur x64 et Apple Silicon, et Windows sur x64 et arm64. Le README recommande une version de noyau Linux de 5.6 ou supérieure, avec un minimum de 5.1, et oriente les utilisateurs x64 vers la documentation sur les exigences CPU en cas d'erreurs d'instruction illégale. Les méthodes d'installation incluent un script shell pour les systèmes de type Unix, une commande PowerShell pour Windows, une installation globale npm, Homebrew sur macOS et une image Docker. Les mises à jour sont gérées avec `bun upgrade`, et une version canary est automatiquement publiée à chaque commit sur `main`, avec `bun upgrade --canary` pour y passer.

Bun : réunir l’exécution et les outils JavaScript : Documentation et guides

Le README du dépôt renvoie vers une documentation complète sur bun.com, organisée en sections pour le runtime, le gestionnaire de paquets, le bundler, l'exécuteur de tests, l'exécuteur de paquets et l'API. La liste des API comprend des serveurs HTTP, WebSockets, SQLite, PostgreSQL, Redis, S3, et bien d'autres. Il existe également des guides de déploiement sur des plateformes comme Vercel, Railway, Render, AWS Lambda, DigitalOcean et Google Cloud Run, ainsi que des guides écosystémiques pour React, Prisma, Next.js, et d'autres. Le README ne fournit pas le contenu de ces guides, uniquement des liens.

Bun : réunir l’exécution et les outils JavaScript : Licence et bibliothèques liées

La section licence indique que Bun lui-même est sous licence MIT, mais qu'il lie statiquement JavaScriptCore (et WebKit), qui est sous licence LGPL-2. Selon LGPL2, la liaison statique exige de fournir l'application dans un format objet afin que les utilisateurs puissent modifier la bibliothèque et relier à nouveau. Le README liste le dépôt WebKit patché et les instructions pour construire un Bun personnalisé avec des modifications. Il liste également de nombreuses bibliothèques liées statiquement et leurs licences, notamment boringssl, brotli, libarchive, mimalloc, zstd, ainsi que des polyfills intégrés au binaire. Le texte de licence ne traite pas du support, de la garantie ou des garanties de sécurité.

Bun rassemble runtime, gestionnaire de paquets, bundler et test runner dans un exécutable. Comparez un projet existant avec bun install, bun run et bun test, puis inspectez le lockfile et les scripts réellement utilisés. Une compatibilité annoncée ne remplace pas le test des dépendances natives et des APIs Node dont votre application dépend.

Conclusion éditoriale

Convient aux lecteurs dont le besoin correspond précisément au périmètre de Bun : réunir l’exécution et les outils JavaScript. Ne convient pas à ceux qui déduisent une garantie de production d’une simple démonstration. Commencez par la vérification propre au dépôt décrite ici, observez ses entrées, ses sorties et ses erreurs, puis décidez sur cette base.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté