Bun v1.3.10
(bun.com)- El REPL fue reescrito completamente en Zig, ofreciendo ejecución instantánea y una interfaz de terminal enriquecida, con funciones como copia al portapapeles, autocompletado con tabulador y guardado del historial
- El comando de compilación con destino al navegador puede generar un solo archivo HTML con todo en línea, que puede ejecutarse sin servidor
- Hay soporte completo para los decoradores ES estándar de TC39, lo que permite usar sintaxis moderna como
accessor,Symbol.metadatayaddInitializer - Incluye múltiples mejoras de plataforma y rendimiento, como soporte para Windows ARM64, optimización de barrel imports, opción de reintento en pruebas y un motor JavaScriptCore con mejor rendimiento
- En general, es una versión que mejora notablemente la experiencia de desarrollo, el rendimiento y la compatibilidad de Bun
Nuevo REPL
- El REPL fue reemplazado por una implementación nativa basada en Zig, por lo que puede ejecutarse al instante sin depender de paquetes npm externos
- Soporta resaltado de sintaxis, atajos de teclado de Emacs, autocompletado con tabulador, guardado del historial y entrada multilínea, entre otros
- Incluye comandos integrados como
.copy,.help,.exity.editor - Conserva declaraciones
const/lety soporta tanto top-level await como import/require
--compile --target=browser
bun build --compile --target=browsergenera HTML con JavaScript, CSS y recursos en línea- Las etiquetas
<script src="...">y<link rel="stylesheet">se convierten respectivamente en código en línea - Puede ejecutarse incluso en entornos
file://sin restricciones de CORS - Soporta TypeScript, JSX, React, CSS, ESM y CJS
- Las etiquetas
Decoradores ES estándar de TC39
- Soporte completo para decoradores estándar Stage-3
- Implementa las especificaciones más recientes, como la palabra clave
accessor,Symbol.metadatayClassMethodDecoratorContext - Soporta decoradores de campos, métodos y clases, así como inicializadores (
addInitializer) - Los decoradores experimentales de TypeScript existentes (
experimentalDecorators) siguen funcionando
- Implementa las especificaciones más recientes, como la palabra clave
Soporte para Windows ARM64
- Bun puede ejecutarse y compilarse en Windows basado en ARM64, como equipos con Snapdragon
- Soporta compilación cruzada con el objetivo
bun-windows-arm64 - Puede usarse de la misma forma tanto desde el CLI como desde la API
- Soporta compilación cruzada con el objetivo
Optimización de barrel imports
- Detecta automáticamente estructuras de reexportación mediante barrel files como
import { Button } from 'antd'- Se optimiza automáticamente cuando está configurado
"sideEffects": false - También puede indicarse de forma explícita con la opción
optimizeImports - Al parsear solo los submódulos necesarios, la velocidad de compilación puede mejorar hasta 2 veces
- Se optimiza automáticamente cuando está configurado
Optimización de la salida del bundle
- En bundles ESM/CJS se redujo la cantidad de closures y el uso de memoria heap
- 11% menos objetos, 4 MB menos de heap y una fuerte reducción en la cantidad de funciones y objetos de entorno
- Se aplica automáticamente sin cambios en el código
bun test --retry
- Ahora es posible establecer un número predeterminado de reintentos para toda la suite de pruebas (
--retry N)- La opción
{ retry: N }en pruebas individuales tiene prioridad - En el reporter JUnit XML, cada intento se registra como su propio
<testcase>
- La opción
Mejoras en Bun.generateHeapSnapshot("v8")
- La opción
"arraybuffer"permite devolver el heap snapshot como un ArrayBuffer- Elimina la sobrecarga de conversión a cadena al procesar snapshots grandes
Actualizaciones de TLS y certificados
- Mejora de rendimiento gracias al soporte de keepalive para conexiones mTLS y CA personalizadas
- Las mismas configuraciones TLS se deduplican en un registro global
- Los certificados raíz se actualizaron a NSS 3.119 (Firefox 147.0.3)
- Se eliminaron 4 certificados raíz de CommScope
Actualización del motor JavaScriptCore
- Múltiples mejoras de rendimiento, incluyendo 168 veces más rápido en slicing de cadenas, 10.5 veces en
endsWith, 1.6 veces en acceso a flags deRegExpy hasta 7 veces enpath.parse()structuredClonees hasta 25 veces más rápido con arreglos y arreglos de objetosBuffer.slice()ysubarray()mejoran alrededor de 1.8 veces- También hay optimizaciones internas en
BigInt, iteradores de cadenas y operaciones enteras
Correcciones de errores principales
- Se resolvió un problema de compatibilidad de pipes con servidores MCP de Python asyncio (
Bun.spawn) - Compatibilidad con Node.js: múltiples correcciones en
AsyncLocalStorage,fs.watch, manejo de encabezadoshttpy fallos relacionados con GC - API de Bun: se corrigieron crashes y fugas de memoria relacionadas con
spawn,plugin,sqlybuild - Mejoras generales de estabilidad en WebSocket, bun install, parser de CSS, bun shell y entornos Windows
- Vulnerabilidades de seguridad: se corrigieron inyección de encabezados HTTP, path traversal en tarballs y fugas de streams de S3
1 comentarios
Después de observar su evolución durante bastante tiempo y de usarlo de vez en cuando desde sus inicios, lo que he sentido es que los desarrolladores de Bun de verdad, muy en serio, quieren hacer que el mundo de JS/TS avance más rápido. Es sorprendente. De verdad...