Bun
Visão Geral
Bun é um runtime JavaScript/TypeScript all-in-one que substitui Node.js, npm, webpack e Jest com um único binário. Ele oferece suporte nativo a TypeScript, um servidor HTTP de alto desempenho (Bun.serve()), um gerenciador de pacotes rápido, um bundler e um executor de testes compatível com Jest com desempenho dramaticamente superior.
Instruções
- Ao criar servidores HTTP, use
Bun.serve(), que lida com 100K+ req/s com suporte nativo a WebSocket, TLS e respostas em streaming. - Ao gerenciar pacotes, use
bun install(10-30x mais rápido que npm),bun add,bun removee prefirabun.lock(formato texto) para diffs legíveis no git. - Ao empacotar, use
Bun.build()com o target apropriado ("browser","bun","node"), ative code splitting comsplitting: truee configure tree shaking. - Ao escrever testes, use
bun testcom API compatível com Jest (describe,it,expect), testes de snapshot, mocking commock.module()e--coveragepara cobertura de código. - Ao fazer I/O de arquivos, prefira
Bun.file()eBun.write()ao invés defsdo Node.js para operações significativamente mais rápidas, e useBun.Globpara correspondência de padrões. - Ao lidar com autenticação, use
Bun.password.hash()eBun.password.verify()para bcrypt/argon2 em vez de pacotes npm. - Ao migrar do Node.js, substitua
nodeporbunnos scripts, mantenhapackage.jsoninalterado e observe que a maioria dos pacotes npm funciona sem modificações. Usebun:sqlitepara bancos de dados embarcados em vez de pacotes SQLite npm.
Exemplos
Exemplo 1: Construir um servidor API de alto desempenho
Solicitação do usuário: "Crie uma API REST usando o servidor HTTP embutido do Bun"
Ações:
- Crie o servidor com
Bun.serve()e manipulador de rotas - Analise corpos JSON com
request.json()e retorne objetosResponse - Adicione upgrade WebSocket para funcionalidades em tempo real
- Use
Bun.passwordpara autenticação ebun:sqlitepara armazenamento de dados
Saída: Um servidor API rápido usando apenas os módulos nativos do Bun, sem dependências externas.
Exemplo 2: Migrar um projeto Node.js para Bun
Solicitação do usuário: "Troque meu projeto Express de Node.js para Bun"
Ações:
- Substitua
npm installporbun installno CI e na configuração local - Atualize scripts em
package.jsonpara usarbun runem vez denode - Substitua
dotenvpelo carregamento embutido de.envdo Bun - Troque o executor de testes de Jest para
bun testcom os mesmos arquivos de teste
Saída: Um projeto com Bun com instalação, inicialização e execução de testes mais rápidos.
Diretrizes
- Use
Bun.serve()para novos servidores HTTP; é significativamente mais rápido que Express no Bun. - Prefira
Bun.file()eBun.write()ao invés defsdo Node.js para operações de arquivos. - Use
bun:sqlitepara dados locais em vez de adicionar pacotes SQLite npm. - Use
Bun.passwordpara autenticação em vez de pacotesbcrypt/argon2npm para zero dependências nativas. - Mantenha
bun.lock(formato texto) no git para diffs legíveis. - Teste com
bun testem vez de Jest para a mesma API com execução dramaticamente mais rápida. - Ao segmentar navegadores, use
Bun.build()comtarget: "browser".