Que fait Bun ?
Vue d'ensemble
Bun est un environnement d'exécution JavaScript/TypeScript tout-en-un qui remplace Node.js, npm, webpack et Jest par un seul binaire. Il offre un support natif de TypeScript, un serveur HTTP haute performance (Bun.serve()), un gestionnaire de paquets rapide, un bundler et un exécuteur de tests compatible Jest avec des performances considérablement accrues.
Instructions
- Lors de la création de serveurs HTTP, utilisez
Bun.serve()qui gère plus de 100 000 req/s avec un support WebSocket intégré, TLS et des réponses en streaming. - Pour la gestion des paquets, utilisez
bun install(10 à 30 fois plus rapide que npm),bun add,bun remove, et préférezbun.lock(format texte) pour des diffs Git lisibles. - Pour le bundling, utilisez
Bun.build()avec la cible appropriée ("browser","bun","node"), activez le fractionnement de code avecsplitting: true, et configurez l'élimination du code mort. - Pour les tests, utilisez
bun testavec l'API compatible Jest (describe,it,expect), les tests de snapshots, le mocking avecmock.module(), et--coveragepour la couverture de code. - Pour les opérations d'entrée/sortie sur fichiers, préférez
Bun.file()etBun.write()au modulefsde Node.js pour des opérations nettement plus rapides, et utilisezBun.Globpour la correspondance de motifs. - Pour la gestion de l'authentification, utilisez
Bun.password.hash()etBun.password.verify()pour bcrypt/argon2 au lieu des paquets npm. - Lors de la migration depuis Node.js, remplacez
nodeparbundans les scripts, conservezpackage.jsoninchangé, et notez que la plupart des paquets npm fonctionnent sans modifications. Utilisezbun:sqlitepour les bases de données embarquées au lieu des paquets npm SQLite.
Exemples
Exemple 1 : Construire un serveur API haute performance
Demande utilisateur : "Crée une API REST en utilisant le serveur HTTP intégré de Bun"
Actions :
- Créer le serveur avec
Bun.serve()et un gestionnaire de routes - Analyser les corps JSON avec
request.json()et retourner des objetsResponse - Ajouter une mise à niveau WebSocket pour des fonctionnalités en temps réel
- Utiliser
Bun.passwordpour l'authentification etbun:sqlitepour le stockage des données
Résultat : Un serveur API rapide utilisant uniquement les fonctionnalités intégrées de Bun, sans dépendances externes.
Exemple 2 : Migrer un projet Node.js vers Bun
Demande utilisateur : "Fais passer mon projet Express de Node.js à Bun"
Actions :
- Remplacer
npm installparbun installdans l'intégration continue et la configuration locale - Mettre à jour les scripts
package.jsonpour utiliserbun runau lieu denode - Remplacer
dotenvpar le chargement intégré des fichiers.envde Bun - Changer l'exécuteur de tests de Jest à
bun testavec les mêmes fichiers de test
Résultat : Un projet propulsé par Bun avec des installations, un démarrage et une exécution des tests plus rapides.
Directives
- Utilisez
Bun.serve()pour les nouveaux serveurs HTTP ; il est nettement plus rapide qu'Express sur Bun. - Préférez
Bun.file()etBun.write()au modulefsde Node.js pour les opérations sur fichiers. - Utilisez
bun:sqlitepour les données locales au lieu d'ajouter des paquets npm SQLite. - Utilisez
Bun.passwordpour l'authentification au lieu des paquets npmbcrypt/argon2pour éviter les dépendances natives. - Conservez
bun.lock(format texte) dans Git pour des diffs lisibles. - Testez avec
bun testplutôt qu'avec Jest pour la même API avec une exécution nettement plus rapide. - Lorsque vous ciblez les navigateurs, utilisez
Bun.build()avectarget: "browser".