Soporte para Windows
- Bun ahora puede ejecutarse en Windows 10 y versiones posteriores
- Supera el 98% de la suite de pruebas de Bun en macOS y Linux
- Incluye un administrador de paquetes compatible con npm integrado, y al instalar una app de Vite React es 18 veces más rápido que
yarn y 30 veces más rápido que npm
- Soporta ejecución de scripts más rápida en Windows con el formato de archivo
.bunx
- Optimiza la API de Node.js usando las llamadas al sistema más rápidas en Windows
- Ejemplo:
fs.readdir() es 58% más rápido que en Node.js
Bun es un runtime de JavaScript
- Soporta JavaScript, TypeScript y JSX
- Las herramientas de línea de comandos como
tsc son hasta 2 veces más rápidas que en Bun 1.0
- Bun Shell ahora es un shell multiplataforma disponible también en Windows
- Incluye utilidades básicas como
ls, rm y cat
- Es posible ejecutar el shell desde JavaScript y TypeScript usando la API
Bun.$
Bun.Glob
- Ofrece una API Glob integrada para coincidencia de archivos y cadenas
- Similar a
fast-glob y micromatch, pero con coincidencia de cadenas 3 veces más rápida
Bun.Semver
- Nueva API Semver para parsear y ordenar cadenas semver
- Similar al paquete
node-semver, pero 20 veces más rápida
Bun.stringWidth()
- Nueva API para medir el ancho visible de una cadena en la terminal
- Soporta códigos de escape ANSI, caracteres de ancho completo, grafemas y emoji
server.url: con Bun.serve() se puede obtener la URL del servidor HTTP creado mediante la propiedad server.url
server.requestIP(): la dirección IP de una solicitud HTTP se puede obtener con el método server.requestIP()
subprocess.resourceUsage(): se puede acceder al uso de CPU y memoria de un subproceso creado con Bun.spawn() mediante el método resourceUsage()
- Mejoras en la compatibilidad con Node.js
- Diversas mejoras de API, como compatibilidad con la API cliente de
node:http2, compatibilidad con Date.parse() y soporte para fs.readdir() recursivo
- IPC posible entre Bun y Node.js
- También soporta algunas API no documentadas de Node.js
- Web API: soporte para API estándar de la Web como
WebSocket, performance.mark(), fetch() con compresión Brotli y URL.canParse()
Bun es un administrador de paquetes compatible con npm
- Con
bun install, se pueden instalar paquetes de npm hasta 29 veces más rápido
- Mejoras en funciones como scripts de ciclo de vida,
trustedDependencies y bun pm trust
Bun es un bundler de JavaScript
- Soporta el bundling de código ejecutable en Node.js usando
bun build --target=node
- Con la bandera
--compile, es posible compilar archivos TypeScript y JavaScript en un único ejecutable
Bun es un test runner
- Ofrece un módulo de pruebas integrado con la misma API que Jest
- Se agregaron nuevos matchers de
expect() y soporte para mocking de módulos
Soporte integrado para SQLite
- Soporte para SQLite con una API inspirada en
better-sqlite3
- Mejoras en consultas multi-statement, mensajes de error detallados, importación de bases de datos y soporte integrado
Opinión de GN⁺
- Bun es un toolkit de JavaScript que mejora mucho el rendimiento manteniendo la compatibilidad con Node.js, y con el soporte para Windows ahora puede llegar a una comunidad de desarrolladores más amplia.
- El test runner integrado y el soporte para SQLite permiten a los desarrolladores trabajar de forma eficiente sin herramientas adicionales.
- El alto rendimiento de Bun y la mejora en la experiencia de desarrollo pueden destacar especialmente en proyectos grandes o aplicaciones sensibles al rendimiento.
- A pesar de las múltiples funciones y mejoras que ofrece Bun, para lograr compatibilidad total con la amplia variedad de paquetes del ecosistema de Node.js seguirá siendo necesario el desarrollo continuo y la retroalimentación de la comunidad.
- Hace falta un análisis adicional sobre cómo las nuevas funciones de Bun pueden competir o colaborar con las herramientas existentes basadas en Node.js.
1 comentarios
Comentarios en Hacker News
La impresionante lista de cambios de Bun
La función de macros de Bun
Dudas sobre por qué usar Bun y Deno
Un gran fan de Bun
Evaluación del nuevo lanzamiento de Bun
.jsdel proyecto y el runtime para crear un ejecutable sin dependencias. Esto es útil cuando se quiere distribuir un único binario a los usuarios, pero actualmente el tamaño del archivo sigue siendo bastante grande (más de 90 MB para un proyecto pequeño en GNU/Linux).Solicitud al equipo de Bun
Participación de un desarrollador de Bun
Preguntas sobre la estabilidad de Bun
El modelo de ingresos de Bun y el financiamiento de VC