Джарред Самнер (Jarred Sumner), създател и основен разработчик на сървърната JavaScript платформа Bun, призна успешния експеримент по пренаписването на проекта от езиците Zig и Rust с помощта на AI асистента Claude Code и взе решение да премине Bun на езика Rust. Пренаписаната версия на Rust вече е приета в основния репозиторий на проекта, а кодът на езика Zig е планиран за премахване. Също така, авторът на Bun обяви за наемането на служители, които да поддържат Bun, с повече от 5 години опит в разработката на езиците C/C++ и Rust.
В момента на Rust е реализиран директен порт от Zig, който включва множество блокове с небезопасен код, използва същата архитектура, същите структури от данни и предишни външни библиотеки. Отбелязва се, че портът на Rust успешно е преминал проверката с текущия тестов набор на всички платформи. В същото време бяха отстранени няколко утечки на памет и сривове в тестовете.
След компилирането на версията на Rust, изпълнимият файл стана с 3-8 MB по-малък в сравнение с компилирането на версията на Zig. В тестовете за производителност версията на Rust се оказа или по-бърза, или на същото ниво. Според Джарред най-важното предимство на версията на Rust е възможността за улавяне и предотвратяване на грешки при работа с паметта, диагностицирането на които през последните години отнемаше на разработчиците на Bun много време.
Като причина за пренаписването на Rust по-рано беше отбелязано желанието да се отстранят проблемите в Bun, причинени от утечките на памет, наличието на различия с авторите на Zig относно използването на AI за писане на код и неприемливата за големи проекти политика на Zig относно приемането на изменения, нарушаващи съвместимостта.
JavaScript платформата Bun се развива като високопроизводителен аналог на платформите Node.js и Deno. Проектът се разработва с внимание към съвместимостта със сървърни приложения за Node.js и поддържа голяма част от API-ите на Node.js. Включва набор от инструменти за създаване и изпълнение на приложения на езиците JavaScript и TypeScript, както и runtime за изпълнение на JavaScript приложения без браузър, пакетен мениджър (съвместим с NPM), инструменти за изпълнение на тестове, система за сборка на самостоятелни пакети и слой за интегриране на обработчици, написани на езика Си. По производителност Bun значително изпреварва Deno и Node.js (в тестовете на базата на фреймворка React платформата Bun е два пъти по-бърза от Deno и почти пет пъти по-бърза от Node.js). За изпълнението на JavaScript се използва JavaScript движещият механизъм JavaScriptCore и компоненти на проекта WebKit с допълнителни пачове.
Източник: opennet.ru
