1 pontos por GN⁺ 2025-01-25 | 1 comentários | Compartilhar no WhatsApp

Atualização do Bun 1.2

  • Bun 1.2 melhora bastante a compatibilidade com Node.js e passa a incluir nativamente uma API de armazenamento de objetos S3 e um cliente Postgres. O bun install agora usa o bun.lock baseado em texto. Também triplica o desempenho do Express.

Compatibilidade com Node.js

  • O Bun foi projetado como uma alternativa ao Node.js e melhora a compatibilidade executando a suíte de testes do Node.js.
  • Ao resolver diferenças em APIs internas e mensagens de erro, agora passa em mais de 90% dos testes dos módulos do Node.js.

Servidor HTTP/2 e outros módulos

  • É possível criar um servidor HTTP/2 usando node:http2, o que também é necessário para servidores gRPC.
  • É possível associar e conectar sockets UDP usando node:dgram.
  • É possível criar várias instâncias do Bun com node:cluster para processar tarefas em paralelo.
  • O módulo node:zlib foi reescrito em código nativo, dobrando o desempenho.

Suporte a S3

  • O Bun 1.2 inclui nativamente a API do S3 para ler, gravar e excluir arquivos.
  • O cliente S3 do Bun foi escrito em código nativo e é 5 vezes mais rápido que o do Node.js.

Suporte a Postgres

  • É possível executar consultas SQL com Bun.sql, o que evita SQL injection.
  • O Bun.sql é 50% mais rápido que outros clientes Postgres.

Gerenciador de pacotes

  • O bun install agora usa o bun.lock baseado em texto, ficando mais rápido e reduzindo conflitos de merge.
  • É possível usar comentários e vírgulas finais em package.json.
  • É possível ler o arquivo .npmrc para configurar o registro npm.

Executor de testes

  • O Bun oferece um executor de testes embutido, facilitando a escrita e a execução de testes.

1 comentários

 
GN⁺ 2025-01-25
Comentários do Hacker News
  • Alguns usuários questionam a inclusão de bibliotecas externas na biblioteca principal e acham que seria melhor mantê-las como bibliotecas opcionais

    • O runtime deve ser muito cuidadoso ao incluir coisas na biblioteca padrão, e o que já foi incluído pode acabar tornando o projeto mais complexo
  • Há quem diga que a experiência de usar o Bun foi muito boa

    • Configurar TypeScript, Jest, React e Webpack era trabalhoso, mas o Bun é simples e eficaz
    • Não podem comentar sobre a integração de bibliotecas externas, mas, no geral, o foco está no que é mais pedido
  • Há a opinião de que o comportamento padrão é mágico demais

    • Por exemplo, fornecer ao usuário uma URL pré-assinada em vez de baixar um arquivo do S3 é uma escolha surpreendente
    • Não está claro como desativar esse comportamento
  • Há a opinião de que os recursos nativos fazem uma grande diferença

    • Gostam que a Web API venha incluída por padrão nos runtimes V8 e Webkit
    • Porém, S3 pode ter ido longe demais; drivers SQL são compreensíveis, mas é preciso pensar até que ponto vale incluir esse tipo de coisa
    • Ao adicionar APIs sensíveis, podem estar deixando passar problemas de segurança
  • Há a opinião de que um cliente está usando Bun em produção e que a experiência de desenvolvimento é muito boa

    • A experiência de desenvolvimento pode ter um papel enorme no longo prazo
    • Se a base de código ou os processos não forem bons, é possível perder bons talentos
  • Há a opinião de que a lista de recursos do Bun é tão longa que fica difícil acreditar que tudo seja sólido e sem bugs

    • Do ponto de vista de gestão de projeto, não faz sentido gastar tempo com suporte a S3
    • Conquistar clientes de Next.js provavelmente seria uma forma melhor de crescer
  • O Bun 1.2 adicionou suporte a importação de HTML

    • Com uma única instrução import, é possível substituir toda a toolchain de frontend
    • Há a opinião de que é um recurso muito surpreendente e incrível
  • Há a opinião de que a primeira experiência com Bun foi realmente surpreendente

    • Configurar Webpack ou Vite era trabalhoso, mas o Bun simplesmente funciona
    • Não valia a pena configurar tudo isso para scripts pequenos, mas o Bun funcionou muito bem
  • Há a opinião de que pensavam que ele fracassaria como alternativa ao Node.js, mas ficaram satisfeitos após usar o Bun

    • Foi possível criar facilmente scripts independentes para lidar com TypeScript e atualizações de banco de dados SQLite
    • Também o usaram em novos projetos JS/TypeScript, e tudo funcionou rapidamente
  • Há a opinião de que o processo de garantia de qualidade é apenas formal

    • Parece que mudanças foram mescladas e lançadas mesmo com builds que não passaram
    • Se os testes forem instáveis, será difícil rastrear regressões