— Article en partenariat avec talent.io —
Tout le monde en parle mais peu l’ont encore testé. Je vous propose qu’aujourd’hui, nous partions à la découverte de Bun.sh.
En effet, quand on travaille en tant que développeur, c’est important de se tenir informé de l’évolution des technologies comme Bun ou NodeJS. De la même manière, quand on cherche à évoluer dans son travail, il est bon de connaître la grille des salaires en France. Ça tombe bien puisque talent.io a mis en ligne une étude des salaires de la tech en 2022 pour que vous puissiez déterminer si votre salaire est correct ou sous évalué.
Mais revenons à nos moutons. Présenté comme le nouveau NodeJS, Bun est une plateforme javascript qui contrairement à NodeJS n’utilise pas le célèbre moteur Chromium V8 mais JavascriptCore. Il s’agit d’un framework dérivé de KJS (le moteur JS de KDE) utilisé pour les implémentations Webkit au sein de macOS.
La philosophie derrière Bun.sh c’est de fournir un runtime javascript qui démarre rapidement et qui dispose d’excellents niveau de performances. Beaucoup plus que NodeJS ou encore Deno. Cela n’est pas étonnant car en plus de l’utilisation de JavascriptCore, Bun est codé en Zig, un langage de programmation bas niveau qui offre de bonnes performances.
De plus, c’est un outil qui se veut complet puisqu’il est à la fois un gestionnaire de paquets (un client npm plus rapide que l’original ou que yarn), un bundler et un transpiler qui comprend à la fois le JSX et le Typescript. Il implémente des centaines d’API NodeJS et API Web ainsi que 90% des fonctions natives de NodeJS comme Node-API, fs, path, buffer…etc.
Même si Bun apporte un énorme gain en matière de performances pure mais également un gain de temps grâce à son aspect tout en un, il est encore très jeune puisque sa beta est sortie en juillet 2022.
Je vous propose quand même un petit tutoriel pour installer et tester Bun.sh.
Comment installer Bun.sh
Pour déployer Bun.sh sur votre machine, ouvrez un terminal sous macOS, Linux ou Windows WSL et entrez la commande suivante :
curl https://bun.sh/install | bash
En toute logique, le script d’install a ajouté la ligne suivante à votre $PATH dans le fichier ~/.zshrc :
~/.bun/bin
Dans votre terminal zsh (exec /bin/zsh), lancez alors la commande suivante pour vérifier que bun se lance correctement :
bun --version
En lançant la commande :
bun --help
Vous verrez également les commandes disponible au sein de Bun comme « run » pour lancer du JS, « dev » pour démarrer un serveur de développement, « create » pour créer un projet Bun à partir d’un template…etc
Votre premier script Bun
En guise de test, nous allons d’abord créer un serveur http qui diffusera notre hello world comme ceci dans un fichier .js :
export default {
port: 3000,
fetch(request) {
return new Response("Hello World from Bun!");
},
};
Puis on lance ce fichier .js avec la commande « bun run ». C’est la même commande qui permet d’exécuter des fichiers JavaScript et TypeScript ainsi que les scripts de package.json. En remplaçant « npm run » par « bun run », vos lancements seront 30 fois plus rapides.
Pour info, j’ai nommé mon script : buntest.js.
bun run buntest.js
Rendez-vous ensuite sur l’adresse localhost:3000 avec un navigateur et vous verrez le Hello World s’afficher :
Bun comme gestionnaire de paquets
On va maintenant s’intéresser à l’aspect gestionnaire de paquets de Bun, qui remplace yarn ou npm install et permet d’installer des paquets 20 fois plus rapidement. Par exemple, si je veux installer une lib et ses dépendances, je n’ai qu’à lancer la commande :
bun install nom_de_la_lib
Exactement comment on le ferait avec la commande npm.
Deployer une app avec Bun
Si dans votre terminal, vous tapez la commande suivante :
bun c
Vous verrez une liste de templates de projets que vous pouvez créer avec Bun. Par exemple, pour créer un projet react, il vous suffira d’entrer la commande :
bun create react ./react-app
Une fois le template déployé, faites un :
cd react-app
Puis lancez le serveur de dev :
bun dev
Puis en vous rendant sur l’url : http://localhost:3000, vous verrez la page d’accueil de votre nouveau projet React.
Conclusion
Voilà pour la mise en place et l’utilisation de Bun. Sur le fonctionnement, c’est très similaire à NodeJS mais c’est surtout très rapide. Toutefois, j’ai bien senti que c’était encore en beta car j’ai croisé quand même quelques bugs (également documentés sur leur github) et même un segfault. Donc Bun est encore loin de balayer NodeJS mais une fois que ces problèmes de jeunesse auront été résolus, ce sera un excellent runtime javascript.
Bun n’est donc pas à utiliser en production pour le moment car il y a encore quelques gros problèmes, sans parler de l’absence de minification du code dans le bundler. Ce n’est donc pas encore optimal. Mais c’est un projet à surveiller car il avance vite et se veut très prometteur.
Maintenant si vous pensez que techniquement, vous stagnez dans votre emploi actuel, vous avez peut-être envie de changer de job pour continuer à évoluer dans les technologies, ou obtenir un meilleur salaire. C’est une démarche qui peut s’avérer assez compliquée, stressante parfois, tant on a envie de trouver un travail qui nous corresponde. On peut souhaiter avoir un travail plus proche de chez soi voire en télétravail complet, un meilleur salaire, une meilleure ambiance au travail, ou même tout ça à la fois (mais ce n’est pas forcément facile à trouver).
Heureusement, talent.io est là pour vous aider. Il vous suffit de créer un compte sur la plateforme talent.io en quelques clics pour ensuite recevoir des offres de la part d’entreprises qui correspondent à vos critères précis et qui affichent un salaire d’entrée de jeu. talent.io est vraiment le moyen le plus simple de trouver son prochain job tech, d’ailleurs les inscrits trouvent leur emploi en 20 jours en moyenne.
Author: Kathy Clarke
Last Updated: 1704093722
Views: 2350
Rating: 4 / 5 (109 voted)
Reviews: 84% of readers found this page helpful
Name: Kathy Clarke
Birthday: 2002-01-03
Address: 0578 Estrada Circles, Lake Kent, PA 90395
Phone: +4288876642911262
Job: Article Writer
Hobby: Cycling, Traveling, Chocolate Making, Surfing, Cycling, Photography, Billiards
Introduction: My name is Kathy Clarke, I am a unwavering, unswerving, spirited, daring, forthright, receptive, resolved person who loves writing and wants to share my knowledge and understanding with you.