10 puntos por GN⁺ 2026-03-04 | 1 comentarios | Compartir por WhatsApp
  • 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.metadata y addInitializer
  • 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, .exit y .editor
    • Conserva declaraciones const/let y soporta tanto top-level await como import/require

--compile --target=browser

  • bun build --compile --target=browser genera 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

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.metadata y ClassMethodDecoratorContext
    • Soporta decoradores de campos, métodos y clases, así como inicializadores (addInitializer)
    • Los decoradores experimentales de TypeScript existentes (experimentalDecorators) siguen funcionando

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

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

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>

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 de RegExp y hasta 7 veces en path.parse()
    • structuredClone es hasta 25 veces más rápido con arreglos y arreglos de objetos
    • Buffer.slice() y subarray() 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 encabezados http y fallos relacionados con GC
  • API de Bun: se corrigieron crashes y fugas de memoria relacionadas con spawn, plugin, sql y build
  • 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

 
tsboard 2026-03-04

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...