Jarred Sumner, tvůrce a hlavní vývojář serverové JavaScriptové platformy Bun, uznal úspěšný experiment s přepisováním projektu z jazyka Zig a Rust za pomocí AI asistenta Claude Code a rozhodl se o překladu Bun do jazyka Rust. Přepsaná verze v jazyce Rust byla již přijata do hlavního repozitáře projektu, zatímco kód v jazyce Zig je plánován k odstranění. Taktéž autor Bun oznámil najímání zaměstnanců pro podporu Bun, kteří mají více než 5 let zkušeností s vývojem v jazycích C/C++ a Rust.
V současné době je na Rust realizován přímý port z jazyka Zig, který zahrnuje mnoho bloků unsafe kódu, používá stejnou architekturu, stejné datové struktury a dřívější externí knihovny. Je zřejmé, že port na Rust úspěšně prošel kontrolou existující sadou testů na všech platformách. Během toho bylo rovněž odstraněno několik úniků paměti a selhání testů.
Po sestavení verze na Rust se spustitelný soubor ukázal být o 3-8 MB menší než při sestavení verze na Zig. V testech výkonu se verze na Rust ukázala být buď rychlejší, nebo na stejné úrovni. Jarred navíc uvedl, že nejdůležitější výhodou varianty na Rust je schopnost zachycovat a předcházet chybám při práci s pamětí, jejichž diagnostika zabírala vývojářům Bun v posledních letech spoustu času.
Mezi důvody pro přepisování do Rustu bylo dříve zmíněno přání odstranit problémy v Bun způsobené úniky paměti, existenci nesrovnalostí s autory Zig ohledně použití AI k psaní kódu a nepřijatelná politika Zig ohledně přijímání změn do jazyka, které porušují zpětnou kompatibilitu.
JavaScriptová platforma Bun se vyvíjí jako vysoce výkonná alternativa platforem Node.js a Deno. Projekt je vyvíjen s ohledem na zajištění kompatibility se serverovými aplikacemi pro Node.js a podporuje většinu API Node.js. Součástí platformy je sada nástrojů pro vytváření a spouštění aplikací v jazycích JavaScript a TypeScript, jakož i runtime pro spouštění JavaScriptových aplikací bez prohlížeče, správce balíčků (kompatibilní s NPM), nástroje pro provádění testů, systém pro sestavení nezávislých balíčků a vrstva pro integraci handlerů napsaných v jazyce C. Z hlediska výkonu Bun výrazně předčí Deno a Node.js (v testech na bázi frameworku React platforma Bun dvakrát předčí Deno a téměř pětkrát Node.js). Pro vykonávání JavaScriptu je využit JavaScriptový engin JavaScriptCore a komponenty projektu WebKit s dodatečnými patchi.
Zdroj: opennet.ru
