Jarred Sumner, criador e desenvolvedor principal da plataforma de servidor JavaScript Bun, reconheceu o experimento bem-sucedido de reescrever o projeto nas linguagens Zig e Rust com a ajuda do assistente de IA Claude Code, e decidiu transferir Bun para a linguagem Rust. A versão reescrita em Rust já foi aceita no repositório principal do projeto, enquanto o código em Zig está programado para ser removido. Além disso, o autor do Bun anunciou a contratação de funcionários para apoiar o Bun, que tenham mais de 5 anos de experiência em desenvolvimento nas linguagens C/C++ e Rust.
Atualmente, foi realizado um porto direto para Rust a partir da linguagem Zig, que inclui muitos blocos de código unsafe, utiliza a mesma arquitetura, as mesmas estruturas de dados e as bibliotecas externas anteriores. É destacado que o porto para Rust passou com sucesso pelos testes existentes em todas as plataformas. Durante o processo, várias vazamentos de memória e falhas nos testes foram corrigidos.
Após a compilação da versão em Rust, o arquivo executável resultante ficou de 3 a 8 MB menor do que a versão compilada em Zig. Nos testes de desempenho, a versão em Rust se mostrou mais rápida ou com desempenho equivalente. De acordo com Jarred, a maior vantagem da versão em Rust é a capacidade de detectar e prevenir erros ao lidar com a memória, diagnósticos que nos últimos anos custaram aos desenvolvedores do Bun muito tempo.
Como motivo para a reescrita em Rust, foi mencionado anteriormente o desejo de resolver problemas no Bun causados por vazamentos de memória, a presença de desentendimentos com os autores do Zig em relação ao uso de IA para a escrita de código, e a política inaceitável do Zig em relação à aceitação de mudanças que comprometem a compatibilidade em grandes projetos.
A plataforma JavaScript Bun está se desenvolvendo como uma alternativa de alto desempenho às plataformas Node.js e Deno. O projeto é desenvolvido visando garantir compatibilidade com aplicativos de servidor para 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 nas linguagens JavaScript e TypeScript, além de um runtime para executar aplicativos JavaScript sem navegador, um gerenciador de pacotes (compatível com NPM), ferramentas para executar testes, um sistema de construção de pacotes autossuficientes e uma camada para integrar manipuladores escritos na linguagem C. Em termos de desempenho, Bun supera significativamente Deno e Node.js (em testes baseados no framework React, a plataforma Bun supera Deno em 2 vezes e quase 5 vezes Node.js). Para executar JavaScript, é utilizado o motor JavaScript JavaScriptCore e componentes do projeto WebKit com patchs adicionais.
Fonte: opennet.ru
