- A partir do Claude Code v2.1.181, ele passou a incluir uma versão do Bun portada para Rust, o que deixou a inicialização no Linux 10% mais rápida, embora a maioria dos usuários quase não perceba a mudança
- Ao inspecionar as strings do executável, é possível confirmar Bun v1.4.0, que ainda não tem tag oficial, além de caminhos de arquivos-fonte em Rust
- Em
~/.local/bin/claude, foram encontrados 563 nomes de arquivos .rs, incluindo src/runtime/bake/dev_server/mod.rs
- Também é possível verificar que a versão embutida é 1.4.0 pré-carregando um arquivo TypeScript com
BUN_OPTIONS para exibir Bun.version
- A versão em Rust foi distribuída como Bun canary e já roda em produção em milhões de dispositivos por meio do Claude Code
Bun em Rust embutido no Claude Code
- Segundo Rewriting Bun in Rust, o Claude Code v2.1.181, lançado em 17 de junho, passou a usar o port para Rust
- A inicialização no Linux ficou 10% mais rápida
- Fora isso, os usuários quase não perceberam diferenças, e Jarred Sumner avaliou isso como “Boring is good”
- Já está rodando em produção em milhões de dispositivos por meio do Claude Code
- É possível encontrar a versão embutida do Bun nas strings do executável do Claude
strings ~/.local/bin/claude | grep -m1 'Bun v1'
- Em um ambiente macOS arm64, a saída é
Bun v1.4.0 (macOS arm64)
- Na época, a release estável mais recente no GitHub era a Bun v1.3.14, de 12 de maio, então o Claude Code incluía uma prévia da v1.4.0 que ainda não havia sido lançada oficialmente
- A versão em Rust foi disponibilizada como Bun canary e pode ser instalada com
bun upgrade --canary
Código-fonte em Rust e verificação de versão
strings ~/.local/bin/claude | grep -Eo 'src/[[:alnum:]_./-]+\.rs'
- A lista inclui os seguintes caminhos
src/runtime/bake/dev_server/mod.rs
src/runtime/bake/production.rs
src/bundler/bundle_v2.rs
- O método compartilhado por Ajan Raj usa
BUN_OPTIONS para pré-carregar um arquivo TypeScript e fazer o Claude Code exibir diretamente Bun.version embutido
cat > /tmp/bun-version.ts <<'EOF'
console.log("embedded bun:", Bun.version);
process.exit(0);
EOF
BUN_OPTIONS="--preload=/tmp/bun-version.ts" claude --version
- Esse comando também mostra
1.4.0
- No commit de 17 de maio, a versão no
package.json foi alterada para 1.4.0 e permaneceu assim desde então, mas ainda não foi incluída em nenhuma release com tag fora do canary
1 comentários
Opiniões do Hacker News
É difícil entender por que uma TUI precisa passar por JavaScript e rodar em React para terminal. O fato de a Anthropic ter adquirido até o runtime para melhorar a TUI faz duvidar ainda mais da qualidade de engenharia. Se a reescrita fosse tão fácil, teria sido muito mais barato portar o Claude Code para uma linguagem nativa
Reescrever nem mesmo o Bun é fácil, e uma ferramenta de desenvolvimento não UI, com contratos de API e testes claros, é mais fácil de confiar depois de reescrita do que uma ferramenta de UI com funcionalidade ambígua e poucos testes
É provável que o código voltado ao usuário e a camada de UX que muda rapidamente migrem para sistemas dinâmicos que permitem iteração rápida, enquanto a camada de infraestrutura vá para ambientes de sistemas seguros como Rust. Java/C# ficam no meio-termo, mas daqui para frente TypeScript/Python devem bastar para UX, enquanto Rust é mais adequado para trabalho de sistemas, então seu espaço tende a diminuir
https://avi.press/posts/2026-07-10-after-7-years-in-producti...
https://github.com/openai/codex/discussions/1174
Pelo texto original de Jarred, parece claro que o motivo da transição é que coisas que eram manuais em Zig passam a ser automatizadas em Rust. Como humanos e agentes são ambos não determinísticos, rastrear manualmente o tempo de vida da memória e liberações explícitas em Zig faz com que bugs por omissão se acumulem por muito tempo, enquanto Rust elimina essa classe de erros e se torna um bom compromisso do ponto de vista da gestão de engenharia
Em especial, erros do compilador são uma proteção determinística necessária para agentes de código, e funciona bem quando você dá ao Claude uma forma de testar a correção e o objetivo de “fazer compilar”. A abordagem generalizada de transformar saídas probabilísticas em garantias firmes por meio de testes determinísticos está resumida em https://michael.roth.rocks/blog/verification-surface/
Fazendo isso, Zig também pode ser tão robusto quanto Rust, mas, se você quer padrões de alocação no estilo de linguagens gerenciadas, que LLMs preferem, Zig não é a escolha certa
unsafeno Bun, fico em dúvida se dá para dizer que ele elimina automaticamente classes de erros: https://news.ycombinator.com/item?id=48967630unsafe, então é bem possível que ela não elimine automaticamente esse problemaIndependentemente da avaliação de Jarred ou de Simon Willison, vejo isso de forma bastante negativa. O problema maior do que a aquisição do Bun pela Anthropic ou a reescrita por IA é a forma imatura como tudo foi conduzido: começou com a atitude de “é só meu branch, vocês estão exagerando” e acabou com a mesclagem de um PR com mais de 1 milhão de linhas em menos de um mês
A comunicação foi muito malfeita, prejudicou a confiança e aumentou a divisão, e fico me perguntando se era tão difícil seguir a abordagem que a equipe do TypeScript adotou no 7.0
O Bun v1.4.0 incluído no Claude parece ser uma versão de preview ainda não pública. Se for esse o caso, parece que o projeto FOSS Bun se transformou silenciosamente em outra coisa, então fico feliz por ter deixado a investigação apenas como TODO e não tê-lo adotado
Não consigo encontrar documentos de governança do Bun, e fico me perguntando se agora a estrutura é, na prática, que a Anthropic decide tanto o trabalho quanto o que será mesclado
Não entendo por que complicaram tanto em torno do Bun. Se um agente consegue portar Zig para Rust, o Claude Code também poderia ter sido reescrito diretamente em Rust a partir de JavaScript, eliminando a dependência de runtime e melhorando o desempenho.
O Bun provavelmente tem usuários fora do Claude Code, tanto externos quanto internos à Anthropic, e garante um runtime JavaScript e um ecossistema de ferramentas que modelos de programação podem preferir. No futuro, a Anthropic poderia até oferecer uma nuvem especializada em executar e gerenciar esses apps; só de conquistar a comunidade de desenvolvedores, já teria uma influência muito maior do que portar apenas o Claude Code para Rust.
Tirando especulação e emoção, a qualidade real de execução é o que desperta curiosidade. É preciso verificar não só a velocidade de inicialização, mas também uso de RAM e CPU, loops infinitos e deadlocks; se estiver igual ou melhor que antes, é bastante impressionante.
Como desenvolvedor, não gosto da possibilidade de a IA tomar empregos, mas, se qualquer pessoa puder criar o software que deseja com pedidos simples, isso pode melhorar o mundo. Se você não gosta da coleta de dados da Microsoft, poderia mandar a IA criar um sistema operacional; se não gosta da escuta do Google, poderia mandar criar um celular — uma forma de autossuficiência tecnológica pode se tornar possível, e diante disso a estabilidade de emprego individual fica pequena.
Por isso é ainda mais importante manter a tecnologia como open source; caso contrário, repetiremos as estruturas monopolistas existentes e ainda perderemos empregos.
Recentemente, usando o Claude Code dentro de uma aba do Kitty, tive uma falha de segmentação e, depois disso, a aba inteira parou de responder a entradas. Aparece um link de denúncia, mas não dá para clicar, e ele está codificado, então nem dá para verificar quais informações seriam enviadas.
Segmentation fault, é bem provável que tenha sido um travamento, não uma falha de segmentação. Se fosse um erro real, depois de voltar ao shell você poderia digitarreset, mesmo sem aparecer na tela, para recuperar a aba.unsafeRust, o código que causava o problema também continua lá. Isso não será resolvido antes de uma refatoração para Rust idiomático e seguro em memória.Eles parecem engenheiros péssimos, embora muito bem-sucedidos, que descrevem bem o problema e têm um orçamento de tokens ilimitado. Se tivessem de pagar diretamente o custo dos tokens, teriam incentivo financeiro para melhorar a eficiência do software.
A realidade oculta dos data centers de IA é que, mesmo quando a eficiência dos clusters de GPU é de apenas 40 a 60%, eles compensam comprando mais equipamentos com dinheiro. Talvez temam concorrentes chineses justamente porque eles não têm margem para desperdiçar desse jeito.
Este trabalho é transpilação, e a qualidade também não é boa. O código gerado está longe de Rust idiomático e pode ser considerado uma aberração.
Normalmente, uma reescrita incorpora as lições aprendidas com a base de código existente, mas, ao portar arquivo por arquivo com agentes, não há esse benefício. De qualquer forma, o resultado vira uma tradução não idiomática, mas usar LLM ainda adiciona não determinismo e um custo enorme.
Recentemente, o Claude Code está muito mais instável do que antes, e erros de renderização na TUI frequentemente corrompem o histórico da conversa.
Colocar em segundo plano, executar
resete trazer de volta ao primeiro plano corrige. Quando pedi ao Claude para diagnosticar, ele disse que não tinha esse bug e que era culpa de outro programa, mas só estavam rodando tmux e Claude. Se a versão em Rust foi aplicada recentemente, o momento da queda de qualidade bate mais ou menos.