Bun : La star montante du monde JavaScript
Tags: bunjs, javascript, webdev, tutorial
Published: 2023-11-09 02:48:47

[![Substack Newsletter](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qbg4qlzlytxbzbvj97ia.png)](https://benoitpetit.substack.com/subscribe)

L'année 2022 a vu l'arrivée en force de Bun, un tout nouveau [runtime](https://bun.sh/docs#what-is-a-runtime) JS qui secoue l'écosystème. Porté par l'ingéniosité de [Jarred Sumner](https://github.com/Jarred-Sumner), le cerveau derrière [Deno](https://deno.com/), Bun se positionne comme le futur remplaçant de Node offrant des performances de haut vol et une flexibilité sans limites

Là où Bun frappe fort, c'est avec ses performances étonnantes, dépassant largement celles de Node Cela s'explique en partie par l'utilisation du puissant moteur [JavaScriptCore](https://developer.apple.com/documentation/javascriptcore), déjà utilisé dans Safari, mais optimisé de ouf  par Bun grâce à des ajouts en [Zig](https://ziglang.org/).

![screenshoot performance](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vzakq3u0z3uuf7u6uofj.png)

Les tests ont parlé : Bun est en moyenne 2 voir 3 fois plus rapide que Node pour les applications simples, et les avantages se multiplient pour les applications complexes, à voir dans le temps.

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](https://webassembly.org/), ouvrant la porte à des applications Web à la pointe de la technologie.

L'installation et l'utilisation de Bun sont un jeu d'enfant. Vous téléchargez simplement le binaire correspondant à votre système d'exploitation et lancez le tout. De plus, il partage le même système de modules que Node, facilitant la transition des applications existantes.

Pour installer Bun, il vous suffit d'exécuter la commande suivante, et rien de plus :
```bash
curl -fsSL https://bun.sh/install | bash
```
Plus d'informations ici : [https://bun.sh/](https://bun.sh/)

Lorsque vous souhaitez créer un projet, vous avez deux options : vous pouvez utiliser la commande `create` ou `init`
```bash
bun create <template> [<destination>] 
``` 
Plus d'informations ici : [https://bun.sh/docs/cli/bun-create](https://bun.sh/docs/cli/bun-create)

Alternativement, vous pouvez initialiser un projet dans un dossier en utilisant la commande init :
```bash
bun init
```
Plus d'informations ici : [https://bun.sh/docs/cli/init](https://bun.sh/docs/cli/init)

Après avoir configuré votre projet, vous pouvez utiliser le gestionnaire de paquets Bun pour installer des packages, par exemple, pour installer le package NPM sqlite3, exécutez la commande suivante :
```bash
bun add sqlite3
```
Plus d'informations ici : [https://bun.sh/docs/cli/add](https://bun.sh/docs/cli/add)

Pour exécuter votre projet avec Bun, utilisez la commande suivante en spécifiant le nom de votre fichier de départ :
```bash
bun run index.ts
```
Plus d'informations ici : [https://bun.sh/docs/cli/run](https://bun.sh/docs/cli/run)
ou en mode `--watch`
```bash
bun run --watch index.ts
```
Plus d'informations ici : [https://bun.sh/docs/runtime/hot](https://bun.sh/docs/runtime/hot)

> Bien entendu, Bun propose de nombreuses autres fonctionnalités, que vous pouvez découvrir dans la documentation complète : [https://bun.sh/docs/](https://bun.sh/docs/) `une serie sur bun peu etre`


![screenshoot fonctionnalités](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k20byl344no2218gd7ah.png)

Bun est en train de secouer le monde JavaScript avec ces performances exceptionnelles et sa flexibilité sans limites ! Même s'il est encore jeune, je pense que c'est déjà un choix solide pour les développeurs JS. en tout qu'à, ça l'est pour moi !

> De mon côté, j'utilise Bun depuis plusieurs mois, et je dois dire que c'est le pied ! Pas de problèmes majeurs à signaler, tout roule. J'apprécie particulièrement la possibilité d'utiliser à la fois les importations ES6 et les require CommonJS dans un même fichier, une fonctionnalité super pratique.

> Un autre point qui m'a tapé dans l'œil, c'est la facilité d'intégration d'un fichier .env, sans prise de tête pour installer des dépendances supplémentaires. De plus, le watcher est inclus par défaut avec le drapeau `--watch` simplifiant grandement le processus de développement.

Et je ne peux pas passer sous silence les performances de Bun, surtout grâce au système de gestion des paquets, qui carbure à la vitesse de la lumière.

![screenshoot bun add](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bwpc2i0wvbuhp96lufty.png)

Bref, je prévois de continuer à explorer Bun, et je garde un œil attentif sur l'évolution du projet. C'est la solution idéale pour mes besoins, et je suis sûr qu'elle a un bel avenir. Si vous cherchez un runntime Javascript qui envoie du lourd, Bun est le choix à faire. c'est par ici : [https://bun.sh/](https://bun.sh/)

---

> 🫶 Si vous aimez mes publications et souhaitez soutenir mon travail, vous pouvez faire un don en cliquant sur le lien Stripe Sponsor ci-dessous ou en scannant le code QR. [lien Stripe Sponsor](https://donate.stripe.com/00g6pJ6R19MJ15S7ss)

---

[![Stripe Sponsor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ohkf7lrymedkort4w9iz.png)](https://donate.stripe.com/00g6pJ6R19MJ15S7ss)

--- 

👀 See me here : 

- [Substack](https://benoitpetit.substack.com/subscribe)
- [Mastodon](https://piaille.fr/@codingben) 
- [(X) Twitter](https://twitter.com/codingben_)
- [Github](https://github.com/benoitpetit)
- [NPM Packages](https://www.npmjs.com/~codingben)
- [benoitpetit.dev](https://benoitpetit.dev)
- [Dev.to](https://dev.to/benoitpetit)