Conteúdo em Português

Domine o Bun.js de forma prática e objetiva

Guias, tutoriais e comparativos sobre o runtime JavaScript mais rápido do mercado. Tudo em português, direto ao ponto.

4x
mais rápido que Node
1 binário
runtime + bundler + test
100%
compatível com npm

O que é Bun.js e por que você deveria se importar

Bun é um runtime JavaScript e TypeScript all-in-one projetado para velocidade. Ele substitui Node.js, npm, yarn, webpack, Babel e Jest em um único binário escrito em Zig.

Construído com o JavaScriptCore (engine do Safari), o Bun foi otimizado desde o zero para oferecer performance nativa em operações de I/O, startup e instalação de pacotes.

  • Roda TypeScript e JSX nativamente, sem transpilação
  • Package manager até 30x mais rápido que npm install
  • Test runner integrado compatível com Jest
  • Bundler nativo com suporte a macros
  • APIs do Node.js implementadas nativamente
  • Hot reload com --watch embutido
server.ts
// Um servidor HTTP em 6 linhas
const server = Bun.serve({
  port: 3000,
  fetch(req) {
    return new Response("Ola, Bun!")
  },
})

console.log(`Rodando em ${server.url}`)

// Ler um arquivo? Uma linha:
const data = await Bun.file("data.json").json()

// Escrever? Também:
await Bun.write("output.txt", "pronto!")

Números que falam por si

Comparativos reais entre Bun, Node.js e Deno em operações comuns do dia a dia.

Requests/segundo

Servidor HTTP respondendo JSON simples

Bun112k req/s
Node.js48k req/s
Deno67k req/s

Install de pacotes

Instalar dependências de projeto médio (node_modules limpo)

bun install0.8s
npm install18s
yarn install12s

Startup time

Tempo para inicializar e executar um script simples

Bun6ms
Node.js40ms
Deno25ms

Bun vs Node.js vs Deno

Uma visão clara das diferenças entre os três principais runtimes JavaScript.

Node.js

O veterano consolidado

  • TypeScript via transpilador
  • npm (package manager separado)
  • Test runner desde v20
  • Bundler externo necessário
  • Ecossistema imenso
  • --watch nativo

Deno

Seguro por padrão

  • TypeScript nativo
  • URL imports + npm: prefix
  • Test runner integrado
  • Bundler externo necessário
  • Compatibilidade npm parcial
  • --watch nativo

Estrutura ideal de um projeto Bun

Organize seu projeto seguindo padrões que escalam. Simples, limpo e funcional.

EXPLORER
meu-projeto
src
modules
users módulo
user.routes.ts
user.service.ts
user.repository.ts
user.schema.ts
user.test.ts
products
auth
lib
server.ts entry
env.ts
tests
tsconfig.json
package.json
bun.lockb
bunfig.toml

Modular, testável e escalável

A estrutura modular agrupa tudo que pertence a um domínio no mesmo diretório: rotas, serviço, repositório, schema de validação e testes.

Esse padrão elimina a necessidade de navegar entre pastas distantes e torna cada módulo independente e fácil de testar.

  • src/modules/ — cada domínio é um diretório autocontido
  • *.test.ts — testes colocalizados com o código
  • *.schema.ts — validação com Zod no mesmo módulo
  • bunfig.toml — config do Bun (test, install, macros)
  • bun.lockb — lockfile binário, 10x menor que yarn.lock
  • server.ts — entrypoint único usando Bun.serve()

Testes nativos, sem dependências extras

O bun test é compatível com a API do Jest, incluindo describe, it, expect, mocks e snapshots. Sem instalar nada além do Bun.

Até 30x mais rápido que o Jest para suites grandes, com watch mode integrado e suporte a TypeScript sem configuração.

  • Compatível com expect() e matchers do Jest
  • Mocks e spies integrados
  • Snapshot testing
  • Coverage nativo (--coverage)
  • Watch mode (--watch)
  • Lifecycle hooks (beforeAll, afterEach, etc)
Terminal — bun test
$ bun test
 
src/modules/users/user.test.ts:
deve criar um usuário válido [0.8ms]
deve rejeitar email duplicado [1.2ms]
deve hashear a senha com Bun.password [0.3ms]
 
src/modules/auth/auth.test.ts:
deve gerar JWT válido [0.5ms]
deve rejeitar token expirado [0.2ms]
deve validar refresh token [0.4ms]
 
src/modules/products/product.test.ts:
deve listar produtos paginados [1.5ms]
deve filtrar por categoria [0.9ms]
8 pass | 0 fail
3 files | 8 tests | 0 failures
Done in 42ms

Guias e tutoriais

Aprenda Bun.js na prática com conteúdo pensado para desenvolvedores brasileiros.

Primeiros passos com Bun

Instalação, configuração e seu primeiro projeto rodando em menos de 5 minutos.

8 min Iniciante

API REST com Bun.serve()

Construa uma API completa usando o servidor HTTP nativo do Bun, sem frameworks externos.

15 min Intermediário

Migrando de Node para Bun

Guia passo a passo para migrar seu projeto Node.js existente sem quebrar nada.

12 min Intermediário

Testes com bun:test

Configure testes unitários e de integração usando o test runner integrado do Bun.

10 min Intermediário

Bun + Fastify em produção

Como rodar Fastify com Bun, configurar graceful shutdown e deploy na Vercel/Railway.

20 min Avançado

Bun Bundler: substituindo Webpack

Use o bundler nativo do Bun para builds ultrarrápidos sem configuração complexa.

14 min Avançado

Comece em 2 minutos

Do zero ao seu primeiro servidor rodando. Sem complicação.

1

Instale o Bun

Um único comando no terminal. Funciona em macOS, Linux e WSL.

curl -fsSL https://bun.sh/install | bash
2

Crie um projeto

O bun init gera a estrutura básica com TypeScript configurado.

bun init meu-projeto
3

Escreva seu código

Crie um index.ts e use TypeScript diretamente, sem build step.

const msg = "Hello from Bun!"
4

Execute

Rode com hot-reload e veja a mágica acontecer.

bun --watch index.ts

Perguntas frequentes

Sim. Desde a versão 1.0 (setembro 2023), o Bun é considerado estável para produção. Empresas como Vercel, Figma e diversas startups já utilizam Bun em ambientes produtivos. A compatibilidade com o ecossistema npm é excelente, embora alguns pacotes nativos (C++ addons) possam precisar de ajustes.
Sim! O Bun implementa o algoritmo de resolução de módulos do Node.js e é compatível com a grande maioria dos pacotes npm. Você pode usar bun install como substituto direto do npm install e ele gera um lockfile próprio (bun.lockb) para instalações determinísticas e ultrarrápidas.
Para a maioria dos casos, sim. O Bun implementa as APIs mais usadas do Node.js (fs, path, http, crypto, etc). No entanto, algumas APIs menos comuns ou pacotes que dependem de C++ addons específicos podem não funcionar. Para projetos novos, o Bun é uma excelente escolha. Para migrações, recomendamos testar seu projeto antes de trocar completamente.
Na maioria dos casos, não. Se seu projeto usa Node.js com CommonJS ou ESModules, ele provavelmente vai rodar no Bun sem mudanças. O Bun também entende TypeScript e JSX nativamente, então você pode até remover dependências como ts-node ou tsx do seu projeto.
Não. O bun.com.br é um projeto independente da comunidade brasileira, focado em produzir conteúdo educacional sobre Bun.js em português. O site oficial do Bun é o bun.sh. Nosso objetivo é facilitar o aprendizado para desenvolvedores que preferem conteúdo em português.

Pronto para experimentar?

Comece a usar Bun hoje e descubra por que milhares de desenvolvedores estão migrando.

Começar agora