blense.
InícioFrontendProgramaçãoIANotíciasGuiasCheatsheetsSobre

Tecnologia decodificada, sempre.

Uma leitura curada sobre IA, produto e a cultura por trás do código. Sem ruído, sem hype.

blense.

Tecnologia com foco. Histórias sobre o que a inovação realmente muda.

Seções

FrontendInteligência ArtificialProgramação & DevNotícias Tech

Blense

SobreRSSPolítica de privacidadeTermosCookies
© 2026 Blense · blense.fun
Programação & Dev

Bun: O Runtime JavaScript que Substituiu 15 Ferramentas por Uma Só

Bun não é só mais rápido que Node.js. É um runtime, package manager, bundler, test runner e transpiler TypeScript num único binário. Entenda por que ele está se tornando o padrão pra novos projetos em 2026.

Gpor Genildo Souza15 de abr.8 min de leitura
Bun: O Runtime JavaScript que Substituiu 15 Ferramentas por Uma Só

Jarred Sumner, criador do Bun, resumiu assim a proposta da ferramenta: "Não construímos o Bun pra substituir o Node.js. Construímos pra substituir as 15 ferramentas que você precisa junto com o Node.js."

npm. webpack. babel. jest. ts-node. nodemon. tsc. Um binário único substitui tudo isso — e ainda roda TypeScript nativo, sem compilação prévia.

Em dezembro de 2025, a Anthropic adquiriu o Bun. O Claude Code, o Claude Agent SDK e futuros produtos de AI coding da Anthropic rodam sobre ele. Com 7.2 milhões de downloads mensais antes da aquisição e crescimento de 85% ano a ano, o Bun deixou de ser curiosidade pra virar infraestrutura.

HTTP throughput
52k
req/s vs 14k do Node.js
Package install
25-30×
mais rápido que npm
Cold start
8ms
vs 40-120ms do Node.js

Por que o Bun é mais rápido

Node.js usa o motor V8 do Chrome, otimizado para processos de longa duração. Bun usa o JavaScriptCore do Safari, otimizado para startup rápido. Essa diferença arquitetural explica a maioria dos resultados de benchmark.

Além do motor, o Bun foi escrito em Zig — uma linguagem de sistemas de baixo nível — e usa io_uring no Linux para I/O assíncrono eficiente. Sem transpilação de TypeScript. Sem camadas de compatibilidade desnecessárias. Menos trabalho por operação.

Node.js V8 (Chrome) C++ + libuv npm · tsc · jest · nodemon · babel... múltiplas ferramentas externas Bun JavaScriptCore (Safari) Zig + io_uring runtime · pkg manager · bundler · test · TS um único binário
Diagrama — Arquitetura: Node.js vs Bun
ℹ️

A vantagem de performance do Bun é mais visível em startup e package install. Em aplicações reais com banco de dados, os três runtimes convergem perto de 12.000 req/s — porque a latência do banco domina o tempo de resposta. Onde o Bun brilha de verdade: CLIs, serverless e desenvolvimento local.

Instalação

JS
# macOS / Linuxcurl -fsSL https://bun.sh/install | bash# Windowspowershell -c "irm bun.sh/install.ps1 | iex"# Verificarbun --version

TypeScript nativo — sem configuração

Essa é a primeira diferença que desenvolvedores sentem no dia a dia. Com Node.js, rodar TypeScript exige ts-node, ou compilar com tsc, ou configurar tsx, ou usar --experimental-strip-types (que só remove tipos, não faz type-check).

Arsenal do dev de elite.
SolidJS em 2026: Por que a reatividade fina está superando o Virtual DOM28 minMicrofrontends com Angular e Nx: o que ninguém conta16 minLazy Loading: carregar menos para entregar mais13 minTypeScript com Zustand + TanStack Query: os tipos que os tutoriais não mostram8 min
Node.js — setup necessário

# Opção 1: ts-node npm install -D ts-node typescript npx ts-node index.ts # Opção 2: compilar primeiro npx tsc node dist/index.js # Opção 3: experimental (só strip) node --experimental-strip-types index.ts

Bun — zero configuração

# Simplesmente funciona bun index.ts # Ou com watch mode bun --watch index.ts # Sem instalar nada extra # Sem compilação # Sem tsconfig obrigatório

Package manager — 25x mais rápido que o npm

O Bun tem seu próprio package manager que é compatível com o formato do npm mas usa uma estratégia diferente: um cache binário global e hard-links direto para o node_modules. Sem re-download. Sem re-validação em cada install.

JS
# Instalar dependências (substitui npm install)bun install# Adicionar pacotebun add zodbun add -d typescript# Removerbun remove lodash# Executar scripts do package.jsonbun run devbun run buildbun run test# Executar arquivo sem instalar globalmentebunx create-hono meu-app
Tempo de install — React app (menor = melhor) Bun ~2s pnpm ~8s npm ~18s 0s 5s 10s 15s
Diagrama — Comparativo de velocidade de install (React app)

Servidor HTTP nativo

O Bun tem um servidor HTTP built-in baseado nas Web Standard APIs — a mesma interface de Request e Response que você já conhece do browser e do Cloudflare Workers.

JS
// server.tsBun.serve({  port: 3000,  fetch(req) {    const url = new URL(req.url);    if (url.pathname === '/') {      return new Response('Olá do Bun!');    }    if (url.pathname === '/json') {      return Response.json({ runtime: 'bun', fast: true });    }    return new Response('Not Found', { status: 404 });  },});console.log('Rodando em http://localhost:3000');

O servidor nativo do Bun atinge cerca de 68.000 req/s em benchmarks de hello world — competindo com frameworks Rust. Na camada de aplicação, frameworks como o Hono extraem o máximo desse throughput com routing otimizado, validação com Zod e RPC client tipado.

💡

Bun + Hono é a combinação mais performática para APIs JavaScript em 2026. O Hono foi construído sobre Web Standards — a mesma base do Bun.serve() — e roda nativamente sem adaptadores. Se você ainda não conhece o Hono, temos um guia completo sobre o framework — do básico ao RPC client tipado end-to-end.

Test runner integrado

O Bun tem um test runner built-in com API compatível com Jest. Sem instalar @jest/core, sem configurar ts-jest, sem setup de environment. Funciona direto.

JS
// math.test.tsimport { describe, it, expect, beforeEach } from 'bun:test';import { soma, media } from './math';describe('funções matemáticas', () => {  it('soma dois números', () => {    expect(soma(2, 3)).toBe(5);  });  it('calcula média corretamente', () => {    expect(media([1, 2, 3, 4])).toBe(2.5);  });  it('lança erro para array vazio', () => {    expect(() => media([])).toThrow('Array não pode ser vazio');  });});// Rodar// bun test// bun test --watch// bun test --coverage
ℹ️

O test runner do Bun é significativamente mais rápido que o Jest porque não precisa de transpilação. TypeScript é executado diretamente. O mesmo código de teste funciona em ambos — a API é intencionalmente compatível.

Bundler nativo

O Bun inclui um bundler que substitui esbuild, webpack e rollup para os casos mais comuns. TypeScript, JSX, tree-shaking e minificação — nativos, sem plugins.

JS
# CLI — build simplesbun build ./src/index.ts --outdir ./distbun build ./src/index.ts --outdir ./dist --minifybun build ./src/index.ts --outdir ./dist --sourcemap# Target diferentesbun build ./src/index.ts --outdir ./dist --target nodebun build ./src/index.ts --outdir ./dist --target browserbun build ./src/index.ts --outdir ./dist --target bun
JS
// API programáticaawait Bun.build({  entrypoints: ['./src/index.ts'],  outdir: './dist',  minify: true,  splitting: true, // code splitting automático  target: 'browser',  define: {    'process.env.NODE_ENV': '"production"',  },});

APIs nativas úteis

O Bun expõe APIs de alto nível para operações comuns que no Node.js exigem módulos externos ou verbosidade desnecessária.

JS
// Leitura e escrita de arquivos — sem fs.readFile callbackconst texto = await Bun.file('./dados.txt').text();const json = await Bun.file('./config.json').json();await Bun.write('./output.txt', 'conteúdo aqui');// Hashing nativo — sem bibliotecaconst hash = Bun.hash('minha string');const sha256 = new Bun.CryptoHasher('sha256').update('dados').digest('hex');// Spawn de processosconst proc = Bun.spawn(['ls', '-la'], {  stdout: 'pipe',});const output = await new Response(proc.stdout).text();// SQLite nativo — sem driverimport { Database } from 'bun:sqlite';const db = new Database('./meu.db');const users = db.query('SELECT * FROM users WHERE ativo = ?').all(1);// WebSocket nativo no servidorBun.serve({  port: 3000,  fetch(req, server) {    if (server.upgrade(req)) return; // upgrade pra WebSocket    return new Response('HTTP normal');  },  websocket: {    message(ws, msg) { ws.send(`Echo: ${msg}`); },    open(ws) { console.log('conectado'); },    close(ws) { console.log('desconectado'); },  },});

Compatibilidade com Node.js em 2026

O Bun afirma compatibilidade drop-in com Node.js. A realidade em 2026 é 95% de compatibilidade — o que é produção-ready para a maioria dos casos, mas com exceções importantes.

O que funciona no Bun ✓ Funciona (95%) Express, Fastify, Hono, Elysia Prisma, Drizzle, TypeORM fs, path, crypto, http, net Jest-compatible tests CommonJS + ESM ~95% dos pacotes npm ✗ Bloqueadores (5%) Addons nativos (node-gyp) C++ bindings compilados pra V8 Worker Threads avançados cluster module edge cases Alguns drivers de banco nativos Bun 1.2 melhorou muito isso
Diagrama — Compatibilidade Bun vs Node.js (março 2026)
⚠️

Antes de migrar um projeto Node.js existente, verifique seus addons nativos: grep -r "node-gyp\|binding.gyp\|nan" node_modules/.bin. Se encontrar resultados, a migração vai exigir trabalho extra.

Bun como ferramenta de dev + Node.js em produção

Se você tem dúvidas sobre compatibilidade, há uma estratégia de adoção gradual que funciona bem: usar o Bun como tooling de desenvolvimento e manter Node.js em produção até ter confiança.

JS
# package.json — usando Bun como tooling, deploy em Node.js{  "scripts": {    "dev": "bun --watch src/index.ts",    "test": "bun test",    "build": "bun build src/index.ts --outdir dist --target node",    "start": "node dist/index.js"  // produção ainda em Node.js  }}# A equipe ganha:# - TypeScript nativo no dev (sem ts-node)# - Install 25x mais rápido# - Tests muito mais rápidos# - Sem risco de incompatibilidade em produção

Quando usar o Bun em produção

✅ Use Bun quando

Projeto novo (greenfield) CLI tools — startup de 8ms faz diferença Serverless / edge — cold start crítico TypeScript é prioridade Time pequeno, sem legado Microserviços sem addons nativos Dev experience é critério de escolha

⚠️ Atenção antes de usar

Projeto com addons nativos (node-gyp) Ecossistema com C++ bindings Equipe sem disposição pra testar Sistema enterprise com auditoria APIs de banco de dados exóticas Pacotes obscuros com comportamento V8-específico

O contexto maior: Bun + Anthropic

A aquisição do Bun pela Anthropic em dezembro de 2025 não foi por acaso. Claude Code, que roda inteiramente em Bun, precisa de um runtime com startup rápido, baixo consumo de memória e TypeScript nativo. O Bun resolve os três.

O projeto continua open-source sob licença MIT. O que mudou é o acesso a recursos — a Anthropic tem o incentivo direto de manter o Bun rápido e estável porque seus próprios produtos dependem dele.

ℹ️

Bun v1.2 foi lançado em janeiro de 2026 com a maior atualização de compatibilidade com Node.js até hoje — melhorias em node:cluster, suporte a Windows e correções em Worker Threads. v1.3.11 em março de 2026 focou em bundling e performance do package manager.

O que fica depois de ler isso
  • 1Bun usa JavaScriptCore (Safari) + Zig. O motor otimizado pra startup rápido explica os benchmarks — não é mágica de marketing.
  • 2Um único binário substitui: npm, ts-node, tsc, jest, nodemon, webpack/esbuild. Isso é o real diferencial, não a velocidade bruta.
  • 3Package install 25-30x mais rápido que npm. Para CI pipelines, a diferença é transformadora.
  • 4TypeScript nativo sem configuração. bun index.ts funciona. Ponto.
  • 595% de compatibilidade com Node.js em 2026. Os 5% que faltam são principalmente addons nativos com bindings C++.
  • 6Para aplicações com banco de dados, o throughput em produção é similar ao Node.js — o ganho real é em startup, install e DX.
  • 7Estratégia segura: Bun como tooling de dev (install, test, watch) + Node.js em produção até ter confiança na compatibilidade.
  • 8Adquirido pela Anthropic em dezembro de 2025. Claude Code roda em Bun.

O Bun não nasceu pra vencer benchmarks. Nasceu pra eliminar a fricção entre ter uma ideia e ter um servidor rodando.

Em 2026, essa fricção era real — e o Node.js acumulou 15 anos de ferramentas externas pra compensá-la. O Bun decidiu resolver na raiz.

Leitura complementar
Quer aprofundar este assunto?

O blog tem artigos sobre Node.js, TypeScript, Hono.js e o ecossistema JavaScript moderno — todos com código real e sem didatismo forçado.

Explorar mais no Blog

#JavaScript#TypeScript#Node.js#Bun

Arsenal do dev de elite.

Microfrontends com Angular e Nx: o que ninguém conta
Programação & Dev

Microfrontends com Angular e Nx: o que ninguém conta

Todo tutorial ensina a configurar microfrontends em minutos, mas poucos revelam o caos arquitetural que surge após meses de deploy em produção.

Genildo Souza · 28 de jul. · 16 min
Next.js 16 PPR: Elimine o tradeoff entre estático e dinâmico e alcance Edge TTFB com dados atualizados
Programação & Dev

Next.js 16 PPR: Elimine o tradeoff entre estático e dinâmico e alcance Edge TTFB com dados atualizados

O Partial Prerendering no Next.js 16 resolve o clássico tradeoff de renderização, entregando velocidade estática com dados dinâmicos em uma resposta.

Genildo Souza · 18 de jul. · 15 min
Pare de arriscar seu frontend: a arquitetura definitiva do Angular 22
Programação & Dev

Pare de arriscar seu frontend: a arquitetura definitiva do Angular 22

O Angular 22 chegou. Descubra como as mudanças arquiteturais e os novos primitivos de reatividade o tornam a escolha ideal para sistemas enterprise.

Genildo Souza · 11 de jul. · 18 min
Neste artigo
  • Por que o Bun é mais rápido
  • Instalação
  • TypeScript nativo — sem configuração
  • Package manager — 25x mais rápido que o npm
  • Servidor HTTP nativo
  • Test runner integrado
  • Bundler nativo
  • APIs nativas úteis
  • Compatibilidade com Node.js em 2026
  • Bun como ferramenta de dev + Node.js em produção
  • Quando usar o Bun em produção
  • O contexto maior: Bun + Anthropic