Bun, una plataforma JavaScript que presumeix de ser més ràpida que Deno i Node.js

bo

Bun és un conjunt de ferramentes tot en un per a aplicacions JavaScript i TypeScript. S'envia com un únic executable

Si estàs buscant una plataforma que et permet executar aplicacions escrites a JavaScript, JSX i TypeScript en entorns amb recursos limitats, Bun, pot ser una solució excel·lent per a tu.

Bun es posiciona com una plataforma dissenyada per a l'execució independent d'aplicacions JavaScript i TypeScript i que es pot utilitzar com un reemplaçament transparent de la plataforma Node.js.

Sobre Bun

Bun és un projecte que es està sent desenvolupant amb vista a garantir la compatibilitat amb les aplicacions de servidor escrites per a Node.js, que admeten la major part de l'API de Node.js, inclosos els mòduls i les estructures.

En comparació amb Node.js i Deno, que utilitzen el motor JavaScript V8, Bun es basa en el marc JavaScriptCore desenvolupat per Apple per al navegador Safari. A més de l'alt rendiment, l'ús del JavaScriptCore també va reduir el consum de memòria.

També s'admeten les API web tradicionals, inclosos els objectes, a més a més que es proporciona compatibilitat tant amb els mòduls Node.js com amb els mòduls JavaScript (ESM), creats d'acord amb l'especificació ECMAScript 6 i utilitzats en aplicacions web basades en navegador. Tal com estan les coses, la majoria dels paquets npm creats per a Node.js es poden executar a Bun amb poca o cap modificació.

Bun és un reemplaçament directe de Node.js. Això significa que les aplicacions Node.js i els paquets npm existents simplement funcionen a Bun

La plataforma també pot reemplaçar moltes eines relacionades que s'estan desenvolupant per a l'ecosistema Node.js.

bun inclou un conjunt complet d'eines per crear i executar aplicacions a JavaScript i TypeScript. Entre altres coses, la plataforma proporciona un temps d'execució per crear controladors del costat del servidor i executar aplicacions JavaScript sense un navegador, un administrador de paquets compatible amb NPM, un conjunt d'eines per executar proves, un sistema per crear paquets autònoms i una utilitat bunx per instal·lar i executar paquets des del repositori de NPM (equivalent a npx i Yarn dlx).

Els objectius declarats inclouen poder executar la majoria de les aplicacions JavaScript del costat del servidor existents, assolir un alt rendiment i proporcionar eines per reduir la complexitat del desenvolupament i augmentar la productivitat.

També es destaca que Bun proporciona un conjunt mínim d'API optimitzades per realitzar tasques de manera eficient, com executar un servidor HTTP i treballar amb fitxers. El mode «bun –hot» és compatible amb la recàrrega automàtica de codi en calent en cas de canvis als fitxers de l'aplicació, realitzats sense aturar el programa (durant un reinici, les connexions establertes no s'interrompran i l'estat no es perdrà ).

L'especialitat de Bun és el rendiment el qual presumeix de ser molt més gran que Deno i Node.js. I és que per exemple, a les proves d'execució d'una aplicació de servidor basada en el marc React, l'ús de Bun demostra el doble de rendiment que la plataforma Deno i 4,7 vegades més que Node.js. En una prova d'un servidor de xat que utilitza WebSocket, Bun supera el Deno 2 vegades i el Node.js 6 vegades. A la prova de carregar taules grans des de SQLite, la plataforma Bun és dues vegades més ràpida que Deno i Node.js és 4 vegades més ràpid.

Com obtenir Bun?

Per als interessats en poder instal·lar Bun, només cal obrir una terminal i en ella han de teclejar la següent ordre:

curl -fsSL https://bun.sh/install | bash

Quant a la manera com poden instal·lar aplicacions, ho poden fer usant l'ordre

bun install

I per poder compilar, només cal executar l'ordre

bun build

Finalment, cal esmentar que Bun, admet els mecanismes utilitzats a Node.js per treballar amb mòduls i manejar dependències. El codi del projecte està escrit a Zig i C++ i es distribueix sota la llicència MIT. Per executar JavaScript s'utilitza el motor JavaScriptCore JavaScript i els components del projecte WebKit amb pegats addicionals.

si estàs interessat a poder conèixer més sobre això, Pots consultar els detalls al següent enllaç.