Bun, una plataforma JavaScript que presume de ser más rápida que Deno y Node.js
Si estás en busca de una plataforma que te permite ejecutar aplicaciones escritas en JavaScript, JSX y TypeScript en entornos con recursos limitados, Bun, puede ser una excelente solución para ti.
Bun se posiciona como una plataforma diseñada para la ejecución independiente de aplicaciones JavaScript y TypeScript y que puede ser utilizado como un reemplazo transparente de la plataforma Node.js.
Sobre Bun
Bun es un proyecto que se está siendo desarrollando con miras a garantizar la compatibilidad con las aplicaciones de servidor escritas para Node.js, que admiten la mayor parte de la API de Node.js, incluidos los módulos y estructuras.
En comparación con Node.js y Deno, que utilizan el motor JavaScript V8, Bun se basa en el marco JavaScriptCore desarrollado por Apple para el navegador Safari. Además del alto rendimiento, el uso de JavaScriptCore también redujo el consumo de memoria.
También se admiten las API web tradicionales, incluidos los objetos, ademas de que se proporciona compatibilidad tanto con los módulos Node.js como con los módulos JavaScript (ESM), creados de acuerdo con la especificación ECMAScript 6 y utilizados en aplicaciones web basadas en navegador. Tal como están las cosas, la mayoría de los paquetes npm creados para Node.js se pueden ejecutar en Bun con poca o ninguna modificación.
Bun es un reemplazo directo de Node.js. Eso significa que las aplicaciones Node.js y los paquetes npm existentes simplemente funcionan en Bun
La plataforma también puede reemplazar muchas herramientas relacionadas que se están desarrollando para el ecosistema Node.js.
Bun incluye un conjunto completo de herramientas para crear y ejecutar aplicaciones en JavaScript y TypeScript. Entre otras cosas, la plataforma proporciona un tiempo de ejecución para crear controladores del lado del servidor y ejecutar aplicaciones JavaScript sin un navegador, un administrador de paquetes compatible con NPM, un conjunto de herramientas para ejecutar pruebas, un sistema para crear paquetes autónomos y una utilidad bunx para instalar y ejecutar paquetes desde el repositorio de NPM (equivalente a npx y Yarn dlx).
Los objetivos declarados incluyen poder ejecutar la mayoría de las aplicaciones JavaScript del lado del servidor existentes, lograr un alto rendimiento y proporcionar herramientas para reducir la complejidad del desarrollo y aumentar la productividad.
También se destaca que Bun proporciona un conjunto mínimo de API optimizadas para realizar tareas de manera eficiente, como ejecutar un servidor HTTP y trabajar con archivos. El modo «bun –hot» es compatible con la recarga automática de código en caliente en caso de cambios en los archivos de la aplicación, realizados sin detener el programa (durante un reinicio, las conexiones establecidas no se interrumpirán y el estado no se perderá).
La especialidad de Bun es su rendimiento el cual presume de ser mucho mayor que Deno y Node.js. Y es que por ejemplo, en las pruebas de ejecución de una aplicación de servidor basada en el marco React, el uso de Bun demuestra el doble de rendimiento que la plataforma Deno y 4,7 veces más que Node.js. En una prueba de un servidor de chat que utiliza WebSocket, Bun supera a Deno 2 veces y a Node.js 6 veces. En la prueba de cargar tablas grandes desde SQLite, la plataforma Bun es dos veces más rápida que Deno y Node.js es 4 veces más rápido.
¿Como obtener Bun?
Para los interesados en poder instalar Bun, basta con abrir una terminal y en ella deben teclear el siguiente comando:
curl -fsSL https://bun.sh/install | bash
En cuanto a la forma en la que pueden instalar aplicaciones, lo pueden hacer usando el comando
bun install
Y para poder compilar, basta con ejecutar el comando
bun build
Finalmente, cabe mencionar que Bun, admite los mecanismos utilizados en Node.js para trabajar con módulos y manejar dependencias. El código del proyecto está escrito en Zig y C++ y se distribuye bajo la licencia MIT. Para ejecutar JavaScript se utiliza el motor JavaScriptCore JavaScript y los componentes del proyecto WebKit con parches adicionales.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.