10 pontos por GN⁺ 2026-03-04 | 1 comentários | Compartilhar no WhatsApp
  • O REPL foi completamente reescrito em Zig, oferecendo execução instantânea e uma interface de terminal rica, com suporte a cópia para a área de transferência, autocompletar com Tab, salvamento de histórico e vários outros recursos
  • Com o comando de compilação para alvo de navegador, é possível gerar um único arquivo HTML com tudo inline, executável mesmo sem servidor
  • Há suporte completo aos decorators ES padrão do TC39, permitindo usar sintaxes modernas como accessor, Symbol.metadata e addInitializer
  • Inclui várias melhorias de plataforma e desempenho, como suporte ao Windows ARM64, otimização de barrel imports, opção de repetição de testes e melhorias de desempenho no engine JavaScriptCore
  • No geral, é uma versão que melhora bastante a experiência do desenvolvedor, o desempenho e a compatibilidade do Bun

Novo REPL

  • O REPL foi substituído por uma implementação nativa baseada em Zig, podendo ser executado instantaneamente sem dependência de pacotes npm externos
    • Suporte a realce de sintaxe, atalhos do Emacs, autocompletar com Tab, salvamento de histórico e entrada multilinha
    • Inclui comandos embutidos como .copy, .help, .exit e .editor
    • Mantém declarações const/let e suporta tanto top-level await quanto import/require

--compile --target=browser

  • bun build --compile --target=browser gera HTML com JavaScript, CSS e assets inline
    • As tags <script src="..."> e <link rel="stylesheet"> são convertidas em código inline
    • Pode ser executado até em ambiente file://, sem restrições de CORS
    • Suporta TypeScript, JSX, React, CSS, ESM e CJS

Decorators ES padrão do TC39

  • Suporte completo aos decorators padrão Stage 3
    • Implementa as especificações mais recentes, incluindo a palavra-chave accessor, Symbol.metadata e ClassMethodDecoratorContext
    • Suporte a decorators de campos, métodos e classes e a inicializadores (addInitializer)
    • Os decorators experimentais do TypeScript (experimentalDecorators) continuam funcionando

Suporte ao Windows ARM64

  • O Bun pode ser executado e compilado em Windows baseado em ARM64, como dispositivos com Snapdragon
    • Suporte a cross-compilation com o alvo bun-windows-arm64
    • Pode ser usado da mesma forma tanto na CLI quanto na API

Otimização de barrel imports

  • Detecta automaticamente estruturas de reexportação em barrel files, como import { Button } from 'antd'
    • Otimização automática quando "sideEffects": false está definido
    • Também pode ser ativada explicitamente com a opção optimizeImports
    • Apenas os submódulos necessários são analisados, o que pode dobrar a velocidade de build

Otimização da saída de bundle

  • Reduz o número de closures e o uso de memória heap em bundles ESM/CJS
    • 11% menos objetos, 4 MB a menos de heap e grande redução no número de funções e objetos de ambiente
    • Aplicado automaticamente, sem necessidade de alterar código

bun test --retry

  • Permite definir um número padrão de tentativas para todos os testes (--retry N)
    • A opção { retry: N } em testes individuais tem prioridade
    • No reporter JUnit XML, cada tentativa é registrada como um <testcase> separado

Melhorias em Bun.generateHeapSnapshot("v8")

  • A opção "arraybuffer" permite retornar o heap snapshot como ArrayBuffer
    • Remove o overhead de conversão para string ao lidar com snapshots grandes

Atualizações de TLS e certificados

  • Melhor desempenho com suporte a keepalive para conexões mTLS e CA customizada
    • Configurações TLS idênticas passam por deduplicação em um registro global
  • Os certificados raiz foram atualizados para NSS 3.119 (Firefox 147.0.3)
    • Quatro certificados raiz da CommScope foram removidos

Upgrade do engine JavaScriptCore

  • Várias melhorias de desempenho, incluindo slice de strings 168x, endsWith 10,5x, acesso a flags de RegExp 1,6x e path.parse() até 7x
    • structuredClone é até 25x mais rápido em arrays e arrays de objetos
    • Buffer.slice() e subarray() tiveram melhora de cerca de 1,8x
    • Otimizações internas em BigInt, iteradores de string e operações com inteiros

Principais correções de bugs

  • Correção de problemas de compatibilidade de pipe com servidores MCP Python asyncio (Bun.spawn)
  • Compatibilidade com Node.js: várias correções em AsyncLocalStorage, fs.watch, processamento de headers http e falhas relacionadas ao GC
  • API do Bun: correção de crashes e vazamentos de memória relacionados a spawn, plugin, sql e build
  • Melhorias gerais de estabilidade em WebSocket, bun install, parser de CSS, bun shell e ambiente Windows
  • Vulnerabilidades de segurança corrigidas: injeção de headers HTTP, path traversal em tarballs e vazamento de stream do S3

1 comentários

 
tsboard 2026-03-04

Depois de acompanhar o desenvolvimento por bastante tempo do meu jeito e usá-lo de vez em quando desde o início, a impressão que tive é que os desenvolvedores do Bun realmente querem, de verdade, fazer o mundo de JS/TS girar mais rápido. É impressionante. Sério...