Jarred Sumner, criador e desenvolvedor principal da plataforma JavaScript para servidores Bun, declarou um sucesso seu experimento de reescrever o projeto de Zig e Rust usando o assistente de IA Claude Code e decidiu migrar o Bun para Rust. A reescrita em Rust já foi aceita no repositório principal do projeto, e o código em Zig será removido. O autor do Bun também anunciou a contratação de uma equipe de suporte com mais de cinco anos de experiência em desenvolvimento em C/C++ e Rust.
Atualmente, uma adaptação direta da linguagem Zig foi implementada em Rust. Ela inclui diversos blocos de código não seguro e utiliza a mesma arquitetura, estruturas de dados e bibliotecas externas existentes. A adaptação para Rust passou com sucesso no conjunto de testes existente em todas as plataformas. Diversos vazamentos de memória e falhas nos testes também foram corrigidos.
Após a compilação da versão em Rust, o executável ficou de 3 a 8 MB menor que a versão em Zig. Nos testes de desempenho, a versão em Rust apresentou desempenho igual ou superior ao da versão em Zig. No entanto, segundo Jarred, a principal vantagem da versão em Rust foi a capacidade de detectar e prevenir erros de memória, uma tarefa que vinha consumindo muito tempo dos desenvolvedores do Bun nos últimos anos.
As razões para a reescrita em Rust foram anteriormente citadas como o desejo de corrigir problemas no Bun causados por vazamentos de memória, discordâncias com os autores do Zig em relação ao uso de IA para escrever código e a política do Zig de não aceitar alterações na linguagem que quebrem a compatibilidade, o que é inaceitável para grandes projetos.
A plataforma JavaScript Bun está sendo desenvolvida como uma alternativa de alto desempenho ao Node.js e ao Deno. O projeto foi concebido com foco na compatibilidade com aplicações de servidor Node.js e suporta a maior parte da API do Node.js. A plataforma inclui um conjunto de ferramentas para criar e executar aplicações JavaScript e TypeScript, além de um ambiente de execução para aplicações JavaScript sem a necessidade de um navegador, um gerenciador de pacotes (compatível com NPM), ferramentas de teste, um construtor de pacotes independente e uma camada para incorporar manipuladores escritos em C. Em termos de desempenho, o Bun supera significativamente o Deno e o Node.js (em testes baseados no framework React, o Bun supera o Deno em duas vezes e o Node.js em quase cinco vezes). A execução de JavaScript é suportada pelo mecanismo JavaScriptCore e componentes WebKit com patches adicionais.
Fonte: opennet.ru
