Suite à l’article sur mon enthousiasme concernant bun.js, j’ai voulu en faire un autre au sujet du serveur HTTP intégré de Bun.js.
Il offre une resolution intégrée, robuste et performante pour la gestion des requêtes HTTP. Dans cet article, embarquons pour un voyage à la découverte des fonctionnalités géniales de ce serveur HTTP, qui en font un choix de prédilection pour le déploiement d’functions internet. 🌐
1. Gestion des Routes et des Middlewares 😎 :
Le serveur HTTP de Bun simplifie la gestion des routes en permettant une définition claire et concise des factors d’entrée de votre utility. Les middlewares peuvent être intégrés de manière transparente pour traiter les requêtes avant d’atteindre la logique de l’utility, offrant ainsi une flexibilité maximale dans la conception de votre structure.
import { App } from 'bun';
const app = new App();
// la on dit a bun d'utiliser un middleware
app.use((req, res, subsequent) => {
// Middleware log
console.log(`Obtained request at ${req.path}`);
subsequent();
});
app.get('/good day', (req, res) => {
// ici c'est la logique de l'utility
res.ship('Hey, world!');
});
// ca c'est pour lancer le serveur
app.begin(3000);
Plus d’informations : https://bun.sh/docs/api/http#bun-serve
2. Prise en cost des WebSockets 🌐 :
Bun va au-delà de la easy gestion des requêtes HTTP en incluant une prise en cost native des WebSockets. Cette fonctionnalité permet des communications bidirectionnelles en temps réel entre le serveur et le shopper, ouvrant ainsi un univers d’opportunités pour le développement d’functions interactives.
import { Bun } from 'bun';
// Crée un serveur en utilisant la méthode statique 'serve' de la classe Bun
const server = Bun.serve<{ authToken: string }>({
// Définit une fonction de rappel pour les requêtes HTTP
fetch(req, server) {
// Tente de mettre à niveau la requête en WebSocket
const success = server.improve(req);
if (success) {
return undefined;
}
// traiter les requêtes HTTP normalement
return new Response("Hey world!");
},
// Définit des fonctions de rappel pour les connexions WebSocket
websocket: {
// ca c'est appeller l'orsque un message est reçu
async message(ws, message) {
console.log(`Obtained ${message}`);
// Renvoie un message au shopper
ws.ship(`You mentioned: ${message}`);
},
},
});
console.log(`Listening on ${server.hostname}:${server.port}`);
Plus d’informations ici : https://bun.sh/docs/api/websockets
3. Streaming de Fichiers ⚡️ :
BunFile est un objet de flux qui peut être utilisé pour envoyer des fichiers en streaming. Il est optimisé pour les performances, automotive il utilise l’appel système sendfile(2) lorsque cela est doable, permettant des transferts de fichiers sans copie dans le noyau, le moyen le plus rapide d’envoyer des fichiers.
Bun.serve({
// Définit une fonction de rappel pour les requêtes HTTP
fetch(req) {
// Renvoie un fichier en streaming avec une promesse
return new Response(Bun.file("./good day.txt"));
},
});
Plus d’data ici : https://bun.sh/docs/api/http#streaming-files
4. Sécurité et Efficiency 🔐💨 :
Bun guarantee la sécurité et la efficiency de votre utility internet en utilisant les dernières applied sciences disponibles. Le serveur HTTP de Bun supporte le protocole HTTPS, le chiffrement TLS, la compression gzip, le cache HTTP et bien plus encore. Bun optimise également l’utilisation des ressources du système en utilisant un modèle asynchrone basé sur les coroutines, permettant de gérer un grand nombre de requêtes simultanées sans compromettre la réactivité.
Plus d’data : https://bun.sh/docs/api/http#tls
Je ne pourrais pas tout vous montrer dans cet article, mais vous pouvez retrouver la documentation complète ici 😉 : https://bun.sh/docs/api/http
En gros :
Le serveur HTTP de Bun offre un ensemble complet de fonctionnalités pour le développement d’functions internet, de la gestion des routes à la prise en cost native des WebSockets. Sa simplicité d’utilisation, couplée à sa puissance, en fait un choix idéal pour les développeurs cherchant à créer des functions internet performantes et évolutives. Explorez la documentation de Bun pour découvrir encore plus de fonctionnalités et accélérer le processus de développement de vos projets internet. 🚀
❤️ Mon coup de cœur va à Bun.js, un outil tout-en-un que je recommande vivement à tous les développeurs internet.
À bientôt pour un autre article. Ben.