Джарред Самнер (Jarred Sumner), создатель и основной разработчик серверной JavaScript-платформы Bun, признал успешным эксперимент по переписыванию проекта с языка Zig и Rust при помощи AI-ассистента Claude Code, и принял решение о переводе Bun на язык Rust. Переписанный вариант на языке Rust уже принят в основной репозиторий проекта, а код на языке Zig намечен к удалению. Также автор Bun объявил о найме сотрудников для поддержки Bun, имеющих более 5 лет опыта разработки на языках C/C++ и Rust.
На данный момент на Rust реализован прямой порт с языка Zig, который включает множество блоков unsafe кода, использует ту же архитектуру, те же структуры данных и прежние внешние библиотеки. Отмечается, что порт на Rust успешно прошёл проверку существующим тестовым набором на всех платформах. Попутно было устранено несколько утечек памяти и сбоев в тестах.
После сборки версии на Rust исполняемый файл получился на 3-8 МБ меньше, чем при сборке версии на Zig. В тестах производительности версия на Rust оказалась либо быстрее, либо на том же уровне. При этом по мнению Джарред самым важным преимуществом варианта на Rust стала возможность отлавливания и предотвращения ошибок при работе с памятью, диагностика которых последние годы отнимала у разработчиков Bun уйму времени.
В качестве причины переписывания на Rust ранее отмечалось желание устранить проблемы в Bun, вызванные утечками памяти, наличие разногласий с авторами Zig в плане применения AI для написания кода и неприемлемая для крупных проектов политика Zig в отношении принятия в язык изменений, нарушающих совместимость.
Bun JavaScript 平台旨在成為 Node.js 和 Deno 的高效能替代方案。該專案在開發時充分考慮了與 Node.js 伺服器應用程式的兼容性,並支援大部分 Node.js API。該平台包含一套用於建立和運行 JavaScript 和 TypeScript 應用程式的工具,以及一個無需瀏覽器即可執行 JavaScript 應用程式的執行時間環境、一個套件管理器(相容 NPM)、測試工具、一個獨立的套件建構器,以及一個用於嵌入 C 語言編寫的處理程序的層。在效能方面,Bun 顯著優於 Deno 和 Node.js(在基於 React 框架的測試中,Bun 的效能是 Deno 的兩倍,是 Node.js 的近五倍)。 JavaScript 執行由 JavaScriptCore JavaScript 引擎和 WebKit 元件(透過額外的修補程式)提供支援。
來源: opennet.ru
