Bun reescreve 960 mil linhas de Zig a Rust em 6 dias – AI fez o trabalho pesado
Em 14 de maio de 2026, o criador do Bun, Jarred Sumner, fundiu PR #30412 — um extenso branch de 6755 commits que reescreve o núcleo do Bun de Zig para Rust. O ramo, claude/phase-a-p..., foi quase inteiramente gerado por agentes de IA de Anthropic’s Claude.
Os números são surpreendentes:
| Métrica | Valor |
|---|---|
| Confirmações | 6.755 |
| Código traduzido | ~ 960 mil linhas de Zig → Ferrugem |
| Linha do tempo | 6 dias |
| Compatibilidade de teste | 99,8% (Linux x64 glibc) |
| Ramo de origem | claude/phase-a-p... |
O que realmente aconteceu
Bun foi originalmente escrito em Zig, uma linguagem de programação de sistemas projetada por Andrew Kelley. Zig deu velocidade a Bun - mas também limitou o grupo de colaboradores. Rust, por outro lado, possui um ecossistema enorme, ferramentas maduras e profunda integração LLVM.
Após a aquisição da Bun pela Anthropic, a equipe experimentou usar agentes Claude para traduzir toda a base de código Zig para Rust. O experimento foi executado por 6 dias em um cluster de nós com muita memória, produzindo 6.755 commits.
O resultado: uma base de código Rust que passa em 99,8% do conjunto de testes existente do Bun no Linux x64 glibc.
Migração orientada por IA em escala
Esta é uma das primeiras demonstrações em grande escala de migração de base de código orientada por IA. A abordagem:
- Análise de origem: Claude analisou padrões de código Zig, expressões idiomáticas de gerenciamento de memória e a superfície pública da API
- Tradução incremental: cada arquivo Zig foi traduzido para Rust de forma incremental, preservando o comportamento por meio de testes baseados em propriedades
- Execução paralela: múltiplas instâncias do agente Claude trabalharam em paralelo na base de código
- Validação de CI: cada módulo traduzido foi validado em relação ao conjunto de testes existente do Bun
A controvérsia
A fusão gerou intenso debate em toda a comunidade de desenvolvedores:
Comunidade Zig
Bun foi o principal projeto de Zig – a maior e mais visível implantação de produção da linguagem. Loris Cro, membro da Zig Software Foundation, descreveu anteriormente as contribuições do LLM para a Zig como “em sua maioria negativas”. A migração é vista por alguns como uma traição à língua que tornou o Bun possível.
Críticas de “portabilidade Vibe”
Em Lobste.rs, os desenvolvedores cunharam o termo “vibe porting” — tradução orientada por IA que funciona estatisticamente, mas carece de compreensão profunda. Os críticos argumentam que o código Rust gerado pela IA segue padrões superficiais e perde o caminho idiomático do Rust.
A atitude cautelosa de Jarred
Em comentários HN anteriores, Sumner enfatizou: “Não nos comprometemos a reescrever. Há uma grande chance de todo esse código ser descartado completamente.” No entanto, a fusão com main sugere que o experimento excedeu as expectativas - ou que a estratégia mudou.
O que isso significa
Para usuários de pão
Curto prazo: nada muda. A porta Rust mantém a compatibilidade da API. Longo prazo: um pool de contribuidores maior, melhor integração com o ecossistema Rust (caixas como tokio, hyper, reqwest) e iteração potencialmente mais rápida.
Para Zig
Zig perde seu projeto principal. Mas a linguagem continua a evoluir – e a versão Bun pode atrair desenvolvedores que desejam trabalhar em um tempo de execução baseado em Rust.
Para migração de código AI
Este é um momento divisor de águas. Se um tempo de execução em nível de sistema de 960 mil linhas puder ser portado em 6 dias pela IA, a economia da reescrita de software mudará fundamentalmente. Manutenção, migração de legado e portabilidade de idiomas – historicamente caras e arriscadas – tornam-se tratáveis.
Reações da comunidade
| Fonte | Sentimento |
|---|---|
| Notícias sobre hackers | Split – impressionado com a capacidade da IA, cético quanto à qualidade do código |
| Lobste.rs | Crítico - discussão sobre “portação de vibração”, preocupações sobre ferrugem idiomática |
| Análise Stork.ai | Análise estratégica da dinâmica Zig vs Rust |
| DevClass | Relatórios neutros, notas do porto ainda estão “incompletas” |
| CosmicJS | Relata compatibilidade de teste de 99,8% |
Esperando ansiosamenteA reescrita do Bun Rust não foi concluída – 99,8% não é 100%, e os revisores sinalizaram áreas onde a tradução da IA falhou. Mas o fato de esse experimento ter atingido main sinaliza um novo capítulo não apenas para Bun, mas também para a forma como pensamos sobre reescritas de software.
Como disse um comentarista do HN: “A velha questão era ‘devemos reescrever em Rust?’ A nova questão é ‘devemos deixar a IA reescrever isso em Rust para nós?’”