Buscar

Ferramentas

Bun

Runtime de JavaScript e TypeScript com gerenciador de pacotes, test runner e bundler num binário só, pensado para entrar no lugar do Node.js.

  • Desenvolvimento
  • Open Source
Bun

Um único executável, bun, faz o papel de runtime, gerenciador de pacotes, executor de testes e bundler para JavaScript e TypeScript. O runtime usa o motor JavaScriptCore e foi desenhado para substituir o Node.js em projetos existentes com pouca ou nenhuma mudança, segundo o README. O site informa que o Bun agora faz parte da Anthropic.

Para que serve

  • Rodar scripts do package.json e arquivos TypeScript com bun run.
  • Instalar dependências com bun install, compatível com o npm, num projeto Node.js que já existe.
  • Escrever e rodar testes com bun test, que segue a API do Jest.
  • Gerar um bundle ou um executável de arquivo único com bun build.
  • Subir um servidor HTTP com rotas e WebSockets pelo Bun.serve() e consultar Postgres, MySQL ou SQLite pelo Bun.sql.

Como começar

Linux e macOS instalam pelo script oficial:

curl -fsSL https://bun.com/install | bash

No Windows, o comando é powershell -c "irm bun.sh/install.ps1 | iex". Há também pacote no npm (npm install -g bun), fórmula no Homebrew e a imagem Docker oven/bun. Em Linux, o README recomenda kernel 5.6 ou mais novo, com mínimo de 5.1. Para atualizar, bun upgrade.

Licença e custo

A página de licença da documentação separa o que é do Bun do que vem de fora. O código do próprio Bun usa MIT, que obriga quem copia ou redistribui a conservar a nota de direitos autorais e a cópia da licença. O binário, porém, liga estaticamente o JavaScriptCore e o WebCore, do WebKit, que estão em LGPL-2; a mesma página explica como recompilar o Bun com um JavaScriptCore modificado. As demais dependências usam MIT, Apache 2.0, BSD e outras. Plano pago ou hospedagem não aparecem no site nem no README.

Quando vale a pena

Projetos novos em TypeScript e times cansados de combinar npm, Jest e um bundler à parte são o caso mais claro. Num sistema grande em produção, teste a compatibilidade módulo por módulo antes de migrar. O Node.js continua como base de comparação, e o Deno também roda JavaScript e TypeScript.