Article original : A Quick Look at Bun 1.0 – The Node.js Alternative

Par Nishant Kumar

Un homme sage m'a dit un jour : "Quand tu commences  manger Bun, Node.js te semblera fade".

Mais pourquoi est-ce pertinent ? JavaScript est devenu bien plus rapide avec un nouveau runtime JavaScript appel Bun, qui est maintenant pr t pour la production avec sa version 1.0.

Mais comment et pourquoi est-il plus rapide que Node.js ? Beaucoup de questions viennent  l'esprit.

Je rpondrai  certaines de ces questions dans cet article. Et je le ferai rapidement car je suis maintenant plus rapide, tout comme mon pote JavaScript, qui cuit dans le four avec Bun 1.0.

Image

Bun est un outil tout-en-un rapide pour executer, construire, tester et dboguer JavaScript et TypeScript, d'un seul fichier  une application full-stack.

Voici quelques choses que nous pouvons faire avec Bun.

Executez votre code plus rapidement avec Bun

Maintenant, nous n'avons plus besoin d'outils comme npm, pnpm ou yarn car Bun est 17 fois plus rapide. Jetez un il aux donnes ci-dessous :

Image

Bun ne prend que 0,36 seconde pour compiler votre code, alors qu'il faut environ 6,44 secondes avec pnpm, 10,58 secondes avec npm et 12,08 secondes avec yarn.

Bun supporte le rechargement  chaud

Bun supporte le rechargement  chaud ds la sortie de la bote, donc vous n'avez pas besoin d'outils comme Nodemon. Il rafrachira automatiquement le serveur lors de l'execution de code JavaScript ou TypeScript.

Vous pouvez remplacer npm run par bun run pour conomiser plus de 150 ms  chaque fois que vous executez une commande.

Voici le graphique complet :

Image

D'aprs le graphique ci-dessus, l'utilisation de npm prend environ 176 ms pour s'executer, yarn prend environ 131 ms. Dans le cas de pnpm, cela prend 259 ms. Cependant, cela prend environ 7 ms dans le cas de Bun. C'est rapide, n'est-ce pas ?

Bun en tant que bundler JavaScript

Bun est galement un bundler JavaScript avec des performances de premire classe et une API de plugin compatible ESBuild, donc nous n'avons pas besoin de choses comme :

  • ESBuild
  • Webpack
  • Parcel, .parcelrc
  • Rollup, rollup.config.js

Image

Bun supporte maintenant Next.js, Remix, Nuxt, Astro, SvelteKit, Nest, SolidStart et Vite.

Bun a une compatibilit ESM et CommonJS

Une autre grande fonctionnalit de Bun est que nous pouvons utiliser les modules ES et CommonJs ensemble dans le mme fichier, ce qui n'tait pas possible dans Node.js.

Vous pouvez utiliser import et require() dans le mme fichier :

import lodash from "lodash";
const _ = require("underscore");

En outre, Bun a un support intgr pour les API standard du Web disponibles dans les navigateurs, telles que fetch, ainsi que des API Bun supplementaires comme Bun.file() pour lire un fichier de manire paresseuse et Bun.Write() pour crire un fichier dans le systme de fichiers local, ce qui est beaucoup plus simple que Node.js.

Exemple de Bun.file()

const file = Bun.file("package.json");
const contents = await file.text();

Le code ci-dessus lira le contenu d'un fichier package.json et transfrera son contenu dans une nouvelle variable appele contents.

Exemple de Bun.write()

await Bun.write("index.html", "<html/>");
await Bun.write("index.html", Buffer.from("<html/>"));
await Bun.write("index.html", Bun.file("home.html"));
await Bun.write("index.html", 
await fetch("https://example.com/"));

Dans le code ci-dessus, Bun.write() crira la chane "<html/>", ou copiera le contenu du fichier home.html dans le fichier index.html. Si nous devons recuprer des donnes, il recuprera les rsultats d'une API web externe et crira le contenu dans un fichier index.html.

Pourquoi Bun est-il si rapide ?

Bun est rapide car il utilise le moteur JavaScriptCore, tandis que Node.js utilise le moteur JavaScript V8. Le premier a t optimis pour un temps de dmarrage plus rapide.

Image

Si vous voulez que les choses aillent plus vite, vous devriez envisager de remplacer Node.js par Bun.

Comment commencer avec Bun

Vous pouvez installer Bun sur les systmes MacOS et Linux en utilisant npm :

npm install -g bun

Maintenant, vous tes pr t. Pour installer un package npm, faites ceci :

bun install <package-name>

Pour dmarer une application Next.js, faites ceci :

bun run dev

Tout ce que vous avez  faire est de remplacer npm par bun.

Cependant, Bun n'est pr t pour la production que sur les systmes d'exploitation MacOS et Linux. La version Windows est encore experimentale. Pour l'instant, seul le runtime JavaScript est support pour Windows, et non le gestionnaire de paquets, le bundler ou le test runner. Vous pouvez en lire plus  ce sujet ici.

Conclusion

Cet article montre comment vous pouvez utiliser Bun comme alternative  Node.js et accelrer votre temps de dveloppement.

Vous pouvez galement consulter ma vido sur The Node.js killer is here  Bun 1.0 First Look.

Merci d'avoir lu !