#bunjs#JavaScript#runtime

Bun : ce que j'ai aimé, et pourquoi je n'ai pas tout migré

Retour sur Bun : démarrage rapide, TypeScript intégré et limites qui m’ont fait conserver Node pour certains projets.

3 min de lecture
Résumé IA

Générez un résumé de cet article en un clic.

J'ai commencé à tester Bun parce que je voulais un runtime simple pour de petits scripts et des projets TypeScript. Cet article reste un retour d'expérience : les commandes et la compatibilité changent avec les versions, alors vérifie la documentation officielle avant de migrer un projet existant.

Les premiers benchmarks plaçaient souvent Bun devant Node sur des tâches courtes. Le runtime s'appuie sur JavaScriptCore et une implémentation en Zig, mais les chiffres changent selon la version et le scénario. Je préfère donc regarder ce que cela change dans un projet réel.

screenshoot performance

Les benchmarks d'époque plaçaient Bun devant Node sur plusieurs tâches simples. Comme toujours, le résultat dépend de la version et du scénario ; je retiens surtout le démarrage rapide, TypeScript pris en charge sans étape supplémentaire et bun add.

Bun se démarque également par sa flexibilité. Conçu à partir de zéro, il a la capacité d'adopter de nouvelles fonctionnalités et API au fil du temps. Par exemple, il prend en charge les modules TypeScript natifs pour simplifier le développement, et s'entend très bien avec les modules WebAssembly, ouvrant la porte à des applications Web à la pointe de la technologie.

L'installation est rapide : tu télécharges le binaire adapté à ton système, puis tu peux lancer un script ou créer un projet. La compatibilité avec les modules Node facilite les essais, même si elle ne garantit pas que toutes les dépendances fonctionneront sans ajustement.

Pour installer Bun, tu peux utiliser le script officiel :

curl -fsSL https://bun.sh/install | bash

Plus d'informations ici : https://bun.sh/

Pour créer un projet, tu peux utiliser create ou init :

bun create <template> [<destination>]

Plus d'informations ici : https://bun.sh/docs/cli/bun-create

Tu peux aussi initialiser un projet dans un dossier avec init :

bun init

Plus d'informations ici : https://bun.sh/docs/cli/init

Après avoir configuré ton projet, le gestionnaire de paquets Bun permet d'installer une dépendance, par exemple :

bun add sqlite3

Plus d'informations ici : https://bun.sh/docs/cli/add

Pour exécuter ton projet avec Bun, indique simplement le fichier d'entrée :

bun run index.ts

Plus d'informations ici : https://bun.sh/docs/cli/run ou en mode --watch

bun run --watch index.ts

Plus d'informations ici : https://bun.sh/docs/runtime/hot

Bun propose d'autres outils autour du runtime et du gestionnaire de paquets. La documentation officielle reste le meilleur endroit pour vérifier les commandes disponibles.

screenshoot fonctionnalités

Bun m'a convaincu pour les scripts, les prototypes et certains services isolés. Je garde Node quand la compatibilité d'une dépendance ou du déploiement compte davantage que le temps gagné à l'installation. C'est une conclusion moins spectaculaire, mais plus utile qu'un “remplaçant de Node” annoncé trop tôt.

Dans mes essais, j'ai surtout apprécié de pouvoir utiliser TypeScript et le mode --watch sans ajouter de dépendance. La compatibilité CommonJS/ESM dépend toutefois du projet : je la vérifie toujours avec les packages réellement utilisés.

Le chargement d'un fichier .env et le watcher intégrés sont pratiques pour les scripts locaux. Ce sont de petits détails, mais ils réduisent le nombre d'outils à configurer.

Le gestionnaire de paquets est rapide, surtout sur un projet neuf. Pour une application déjà installée, le temps gagné dépend davantage du cache et de la compatibilité des dépendances.

screenshoot bun add

Je continue à suivre Bun, surtout pour les outils de développement et les petits services. Si tu l'essaies, compare-le à ton cas d'usage réel : scripts, CI, compatibilité des packages et observabilité valent mieux qu'un benchmark isolé. La documentation est disponible sur bun.sh.

Soutien

Si cet article t'a été utile, tu peux soutenir le projet sur Liberapay ou Buy Me a Coffee.

Article co-écrit avec l'IA · Images générées avec l'IA.