Lançamento do Bun 1.3
(bun.sh)- O Bun 1.3 evoluiu para um runtime JavaScript full-stack que oferece suporte tanto ao desenvolvimento frontend quanto backend em um grande lançamento
- Recursos principais foram integrados, como um servidor de desenvolvimento frontend embutido com bundles de React e CSS, além de clientes para MySQL, PostgreSQL, SQLite e Redis
- O suporte à compilação para um único executável com
bun build, além de assinatura de código e cross-compilation, melhora a praticidade na implantação - O gerenciador de pacotes introduziu recursos amigáveis para grandes monorepos, como instalações isoladas (isolated installs), API de scanner de segurança e catálogo de dependências (catalog)
- Houve melhorias amplas em praticamente todas as áreas, incluindo test runner, Web API, segurança, compatibilidade com Node.js e desempenho, marcando um salto para uma “plataforma de runtime completa”
Integração de runtime full-stack
- O Bun 1.3 integra recursos de desenvolvimento full-stack, como execução de HTML, roteamento, hot reload e WebSocket, em
Bun.serve()- Suporte a React Fast Refresh e HMR nativo
- Unifica os servidores de backend e frontend em um único processo, eliminando na raiz os problemas de CORS
- Com
bun build --compile, é possível empacotar frontend e backend em um único executável
Suporte a banco de dados e Redis
- Bun.SQL passa a oferecer suporte unificado a MySQL, MariaDB, PostgreSQL e SQLite com uma única API
- O helper
sql.arrayfacilita o tratamento de tipos array do PostgreSQL - Melhorias detalhadas como conexão via Unix domain socket, protocolo de consulta simples e tratamento de null
- O helper
- Adição de um cliente Redis embutido, com desempenho de até 7,9 vezes superior ao ioredis e suporte completo a Pub/Sub
Bundler e recursos de build
- A API
Bun.build()permite gerar executáveis a partir do código - Suporte a assinatura de código (macOS e Windows), cross-compilation (Linux/macOS/Windows) e configuração de metadados
- Um minificador mais inteligente remove código não utilizado e adiciona opções de configuração de JSX e suporte a padrões Glob
Expansão dos recursos de gerenciamento de pacotes
- Isolated installs agora são aplicadas por padrão, e cada workspace acessa apenas suas próprias dependências
- O recurso Catalog permite gerenciar centralmente as versões de dependências em um monorepo
- A API de scanner de segurança e o minimumReleaseAge reforçam a defesa contra ataques à cadeia de suprimentos
- Ferramentas de gerenciamento em nível de npm e pnpm, como
bun why,bun update --interactive,bun infoebun audit, agora estão completas
Melhorias em testes e depuração
- O
bun testganhou integração com o VS Code Test Explorer, testes paralelos (test.concurrent), execução aleatória e testes de tipo (expectTypeOf) - Suporte a encadeamentos
.failing,.seriale.each, além de preservação automática da indentação em snapshots - Bloqueio de
test.onlyem ambientes de CI e maior consistência na ordem dos testes
Reforço das Web APIs e dos padrões de runtime
- Parsing/serialização de YAML embutidos, com importação direta de arquivos
.yaml - A API
request.cookiesoferece gerenciamento automático de cookies - Suporte a helpers de stream como ReadableStream
.text()/.json(), compressão Zstandard e carregamento por streaming de WebAssembly - Implementação de DisposableStack/AsyncDisposableStack para simplificar a limpeza de recursos
Segurança e recursos de sistema
- Com
Bun.secrets, é possível usar o armazenamento seguro do sistema operacional (como o Keychain) Bun.CSRFfornece uma API para geração e validação de tokens CSRF- O módulo crypto teve melhoria de desempenho de 400 vezes, com reforços em Diffie-Hellman, HKDF e operações com números primos
Melhor compatibilidade com Node.js
- Mais de 800 testes do Node.js passaram a ser aprovados, com grande expansão em
node:test,node:vm,worker_threads,fs,http2e mais - Suporte completo à maior parte dos módulos centrais, incluindo require.extensions, process.binding(), controle de native addons, perf_hooks, tls e cluster
- Compatibilidade com N-API acima de 98%, e identificação de runtime no mesmo nível do Node.js 24.3.0
Melhorias na experiência do desenvolvedor
- Mudança na configuração padrão do TypeScript (
"module": "Preserve") - Maior controle do runtime com a variável de ambiente
BUN_OPTIONS,--console-depthe--user-agent - Suporte a scripts de preload (
BUN_INSPECT_PRELOAD) e SQL Preconnect - Melhorias no
bunxpermitem executar até mesmo pacotes cujo nome difere do binário
Desempenho e estabilidade
- Redução do uso ocioso de CPU, otimização do GC, economia de 10% a 30% de memória e 60% de ganho na velocidade de build
postMessageaté 500 vezes mais rápido,bun install2,5 vezes mais rápido eArray.includes2,8 vezes mais rápido- Otimizações em nível de WebKit e Zig aceleram o runtime como um todo
- Centenas de correções de bugs e resolução de vazamentos de memória melhoram bastante a estabilidade
Principais mudanças
- Mudança na estrutura de tipos de
Bun.serve()e renomeação destaticpararoutes - A forma de chamada do cliente SQL mudou de funcional → tagged template
- No Linux, o sinal de GC foi trocado para SIGPWR
- A versão exibida do Node.js foi alterada de 22.x para 24.3.0
O Bun 1.3 marca um ponto de virada ao se posicionar, mais do que como um simples runtime, como uma “plataforma integrada que abrange Node, Deno, Vite e pnpm”
5 comentários
Foi só por pouco tempo, mas pela minha experiência usando desde o começo, acho que houve um avanço enorme e até me fez pensar: será que vou dar mais uma chance? haha
Espero que isso evolua bem.
Então era esse o plano!!
Gostei que a interface SQL foi padronizada.
Deve haver algum motivo para o Vite não ter integrado isso, mas fiquei curioso para saber como tem sido a experiência de uso do Bun em produção.