As instalações do Node têm sido lentas por anos. Você executa npm install, vai até a máquina de café, volta, e o CI ainda está resolvendo @types/node. O Aube muda esse cenário: realiza uma instalação quente de CI de um projeto real com 1.400 pacotes em 139 milissegundos — cerca de 7,3 vezes mais rápido que o pnpm e 3 vezes mais rápido que o Bun no mesmo contexto. O interessante é que o Aube lê e grava seu lockfile existente, então você pode testá-lo já na segunda-feira sem migrar todo o time.
Este guia mostra o que é o Aube, como atinge esses números, como instalar, como se compara a pnpm, npm, yarn e Bun, e porque vale a pena se você constrói APIs com ferramentas como o Apidog diariamente.
O que é o Aube?
Aube é um gerenciador de pacotes Node.js ultrarrápido desenvolvido pela en.dev, licenciado sob MIT. O nome significa “amanhecer” em francês (“ôb”). O projeto está em beta (v1.0.0-beta.10) e foca em ser 100% compatível com pnpm v11.
O Aube adota o mesmo modelo em disco do pnpm (armazenamento global endereçável por conteúdo + layout isolado via symlinks), mas com um pipeline de instalação escrito em uma linguagem nativa, multithread, e não em JavaScript. O resultado é um layout conhecido, mas com performance superior: supera o Bun em vários benchmarks e grava o pnpm-lock.yaml sem quebrar nada.
Além disso, o Aube lê lockfiles de pnpm, npm, yarn e Bun diretamente. Você pode rodar o Aube localmente enquanto o CI segue com pnpm — nada muda para o time.
Benchmarks do Aube: quão rápido é o “mais rápido”?
O benchmark padrão usa um projeto real com ~1.400 pacotes, cronometrado com hyperfine. Os testes cobrem lockfiles commitados. O diferencial é o cache: quente limpa node_modules mas mantém cache global; frio apaga tudo.
Números oficiais (fonte):
| Cenário | aube | bun | pnpm | yarn | npm |
|---|---|---|---|---|---|
| Instalação CI (cache quente, sem node_modules) | 139ms | 416ms | 1.01s | 2.43s | 2.78s |
| Instalação CI (cache frio, sem node_modules) | 1.12s | 935ms | 1.57s | 6.60s | 4.21s |
install && run test (já instalado) |
21ms | 42ms | 453ms | 351ms | 615ms |
Adicionar dependência (add is-odd) |
209ms | 414ms | 1.33s | 2.55s | 2.89s |
A instalação quente de CI é o principal caso — o mais frequente em pipelines: Aube é 7,3x mais rápido que pnpm e 3x mais rápido que Bun. No ciclo local (install && test), o Aube pula a instalação se o estado está atualizado — retorna em 21ms. Em cache frio, o Bun é um pouco mais rápido, pois é dominante em E/S. Os benchmarks completos podem ser reproduzidos com mise run bench no repositório Aube.
Por que o Aube é mais rápido que pnpm e Bun
Três decisões técnicas:
- Pipeline nativo multithread: npm/pnpm/yarn usam Node.js, pagando o custo do JavaScript a cada operação. O Aube executa o pipeline crítico em código nativo e multithread. Bun faz algo similar, mas inclui um runtime JS completo; o Aube é focado só na instalação — por isso supera o Bun em casos quentes.
-
Armazenamento virtual global por padrão: O pnpm v11 adicionou
enableGlobalVirtualStore, mas não é padrão. O Aube já usa global virtual store — projetos com dependências sobrepostas compartilham arquivos pesados via symlinks. -
Instalação otimizada via arquivo de estado: Antes de instalar, o Aube checa um arquivo de estado. Se hash de
package.jsone lockfile batem, a instalação é pulada (uma chamadastatapenas), liberando o comando seguinte quase instantaneamente.
Não é mágica: é foco total em performance e no caso "nada mudou".
Como instalar o Aube
O método recomendado é via mise:
mise use -g aube
Verifique se está no seu PATH:
aube --version
Alternativas:
- npm:
npm install -g @endevco/aube
- Homebrew (macOS/Linux):
brew install endevco/tap/aube
Para fixar o Aube por projeto:
mise use aube
Isso grava a versão no mise.toml. Cada shell no projeto usará a mesma versão, eliminando o clássico “funciona na minha máquina”. Veja mais opções na documentação de instalação.
Comandos diários essenciais
A CLI do Aube é quase idêntica ao pnpm, facilitando a adaptação:
aube install # instalar dependências
aube add react # adicionar uma dependência
aube add -D vitest # adicionar dependência de desenvolvimento
aube remove react # remover uma dependência
aube update # atualizar dependências
aube run build # rodar script do package.json
aube test # rodar teste, instala antes se necessário
aube exec vitest # executar binário local
aube dlx cowsay hi # rodar pacote em ambiente temporário
aube ci # instalação limpa e congelada para CI
Abreviações:
aubr build # aube run build
aubx cowsay hi # aube dlx cowsay hi
No CI, use aube ci: remove node_modules, verifica lockfile e instala. Lockfile desatualizado? Falha imediatamente — comportamento desejado em pipelines.
Compatibilidade de Lockfile
Este é o "pulo do gato": adote sem migrar o time inteiro.
| Lockfile | Lê | Grava |
|---|---|---|
aube-lock.yaml |
sim | sim |
pnpm-lock.yaml v9 |
sim | sim |
package-lock.json v2/v3 |
sim | sim |
npm-shrinkwrap.json |
sim | sim |
yarn.lock (v1 classic + v2+ berry) |
sim | sim |
bun.lock |
sim | sim |
Exemplo prático: sua equipe usa pnpm e CI roda pnpm install --frozen-lockfile. Você roda aube install, que lê e grava o mesmo lockfile — ninguém percebe. Com o tempo, pode migrar o CI se preferir. Se desistir, basta remover e seguir como antes.
Atenção: lockfiles antigos de pnpm (v5/v6) precisam ser atualizados primeiro, e projetos yarn PnP devem retornar ao linker node_modules.
Padrões de segurança: mais importantes do que parecem
Incidentes na cadeia de suprimentos do npm são frequentes. Veja o guia de segurança do npm ou o ataque no Axios npm.
O Aube implementa três padrões:
- Idade mínima do release: pacotes novos só podem ser instalados após um período configurável.
- Bloqueio de dependências exóticas: dependências suspeitas (URLs incomuns, patches, git fora do padrão) são bloqueadas até aprovação explícita.
-
Aprovação de scripts de ciclo de vida: scripts
postinstallsão ignorados por padrão. Aprove o que realmente precisa comaube approve-builds. Pacotes ignorados aparecem emaube ignored-builds.
Essas medidas não blindam, mas aumentam o controle: você escolhe o que roda na sua máquina.
Layout dos módulos Node
O Aube usa um node_modules isolado:
- Topo do projeto: dependências diretas.
- Transitivas: ficam em
node_modules/.aube/. - Arquivos de pacotes: armazenados uma vez em
$XDG_DATA_HOME/aube/store/(normalmente~/.local/share/aube/store/).
Consequências:
- Projetos com dependências comuns compartilham arquivos no disco.
- Importações fantasmas desaparecem (como no pnpm).
- Instalações repetidas só precisam hard-link.
Se antes você usava layout plano (npm clássico/yarn v1), pode encontrar algum pacote quebrado por importação fantasma. Solução: adicione ao package.json.
Workspaces e monorepos
O Aube suporta workspaces e o protocolo workspace::
aube install -r
aube run test -r
aube add zod --filter @acme/api
Se já tem pnpm-workspace.yaml, o Aube lê e grava. Novos projetos podem usar aube-workspace.yaml. As flags -r e --filter mapeiam para o comportamento do pnpm. Ferramentas como Turborepo e Nx funcionam sem ajustes.
Para monorepos de API, cada segundo economizado na instalação do CI soma minutos ao longo do dia.
Onde o Aube se encaixa no fluxo de desenvolvimento de API
Para quem constrói e testa APIs, a instalação está no caminho crítico de cada refatoração. Exemplo de ciclo eficiente:
- Modele e simule a API no Apidog. Schema-first > code-first para integração entre times.
- Gere um cliente tipado ou rode testes de contrato com o mock do Apidog.
- Use o Aube para instalações rápidas enquanto itera no cliente.
- No CI, use
aube cipara garantir consistência.
A migração de ferramentas pós-Postman mostra a tendência: ferramentas rápidas, locais e seguras. O Aube segue o mesmo princípio para instalações. Se já usa o Apidog no VS Code, adicionar o Aube é só uma linha no mise use e traz ganhos visíveis em hot reload.
Migração: npm, pnpm, yarn, Bun
npm:
Execute aube install. O Aube lê e grava package-lock.json, mas muda o layout para isolado. Importações fantasmas? Adicione ao package.json. Veja o guia para usuários do npm.
pnpm:
Migração mais suave, pois o layout é igual. Lê pnpm-lock.yaml v9, suporta protocolo workspace:, filtros, etc. Veja diferenças de flags em pnpm-users na doc.
yarn:
Lê yarn.lock v1/v2+. Para Yarn PnP, volte ao modo nodeLinker: node-modules antes de usar o Aube.
Bun:
Lê bun.lock. O Aube é desacoplado do runtime JS, funcionando com qualquer Node.js e se integra com mise.
Considerações do mundo real
- Beta: Em abril de 2026, versão v1.0.0-beta.10. Teste localmente, mantenha lockfile existente, e só aposte em produção após um mês de uso.
-
Escopo: O Aube não cobre gerenciamento de runtime (
env,runtime, etc) — isso é com o mise. Helpers comowhoamioutokensão stubs e redirecionam ao npm. - Plataformas: mise cobre macOS, Linux e Windows via WSL. Instalação via tarball no Windows nativo está em estágio inicial — veja a matriz na doc.
- Comunidade: Projeto ativo, Discord e 325 estrelas no GitHub (abril/2026). Buildkite faz o CI.
FAQ
O que significa “aube”?
Amanhecer em francês (“ôb”). Slogan: “um novo amanhecer para as instalações do Node”.
Aube substitui o pnpm?
Quase: visa compatibilidade total com pnpm v11 e lockfiles. A maioria dos fluxos migra sem mudanças. Gerenciamento de runtime e helpers de registro ficam para outras ferramentas.
Posso usar Aube no CI e pnpm localmente (ou vice-versa)?
Sim, ambas as direções funcionam — ambos leem/gravam o mesmo lockfile.
Como Aube se compara ao Bun?
Em instalação quente, Aube é 3x mais rápido. Em cache frio, Bun é levemente mais rápido. Bun inclui runtime JS; o Aube é focado só em instalação. Veja a comparação de layout.
Funciona no Windows?
Sim, via WSL. Nativo existe via tarball, mas é experimental. mise é o método mais fácil em qualquer SO.
É open source?
Sim, MIT, código no GitHub.
O que acontece com meu pnpm-lock.yaml?
O Aube lê, instala e grava de volta. Seu time pode continuar com pnpm normalmente.
Conclusão
Para a maioria dos projetos Node em 2026, instalar dependências é mais lento do que deveria. O Aube é o gerenciador de pacotes Node.js mais rápido para instalações quentes e comandos repetidos — 139ms para CI com 1.400 pacotes, 21ms para install && test quando nada mudou, 90% menos uso de disco em ambientes multi-projeto. Ele respeita lockfiles existentes, implementa padrões de segurança e custa apenas uma linha no mise use aube para testar.
Se você já testa APIs com um cliente rápido e local como o Apidog, o Aube complementa perfeitamente o fluxo. Baixe o Apidog se ainda não usa, combine com o Aube no próximo serviço Node e veja o ciclo de feedback acelerar.


Top comments (0)