Jarred Sumner, tvorca a hlavný vývojár serverovej JavaScriptovej platformy Bun, vyhlásil svoj experiment s prepísaním projektu zo Zigu a Rustu s využitím asistenta umelej inteligencie Clauda Codea za úspešný a rozhodol sa migrovať Bun do Rustu. Prepísaný kód z Rustu už bol prijatý do hlavného repozitára projektu a kód Zigu je naplánovaný na vymazanie. Autor Bunu tiež oznámil prijatie podporného personálu s viac ako päťročnými skúsenosťami s vývojom v C/C++ a Ruste.
V súčasnosti je v Ruste implementovaný priamy port jazyka Zig. Obsahuje množstvo blokov nebezpečného kódu a používa rovnakú architektúru, dátové štruktúry a existujúce externé knižnice. Port v Ruste úspešne prešiel existujúcou testovacou sadou na všetkých platformách. Opravených bolo aj niekoľko únikov pamäte a zlyhaní testov.
Po zostavení verzie pre Rust bol spustiteľný súbor o 3 až 8 MB menší ako verzia pre Zig. Vo výkonnostných testoch bola verzia pre Rust buď rýchlejšia, alebo na rovnakej úrovni. Podľa Jarreda však najdôležitejšou výhodou verzie pre Rust bola schopnosť zachytiť a predchádzať chybám pamäte, čo bolo v posledných rokoch pre vývojárov Bunu veľmi časovo náročnou úlohou.
Dôvody pre prepísanie do Rustu boli predtým uvádzané ako túžba opraviť problémy v Bun spôsobené únikmi pamäte, nezhody s autormi Zigu ohľadom používania AI na písanie kódu a Zigova politika týkajúca sa akceptovania zmien v jazyku, ktoré narúšajú kompatibilitu, čo je pre veľké projekty neprijateľné.
Platforma Bun JavaScript sa vyvíja ako vysoko výkonná alternatíva k Node.js a Deno. Projekt sa vyvíja s ohľadom na kompatibilitu so serverovými aplikáciami Node.js a podporuje väčšinu rozhrania Node.js API. Platforma obsahuje sadu nástrojov na vytváranie a spúšťanie aplikácií JavaScript a TypeScript, ako aj runtime prostredie na spúšťanie aplikácií JavaScript bez prehliadača, správcu balíkov (kompatibilný s NPM), testovacie nástroje, samostatný nástroj na tvorbu balíkov a vrstvu na vkladanie obslužných programov napísaných v jazyku C. Z hľadiska výkonu Bun výrazne prekonáva Deno a Node.js (v testoch založených na frameworku React Bun prekonáva Deno faktorom 2 a Node.js faktorom takmer 5). Vykonávanie JavaScriptu je podporované enginom JavaScriptCore JavaScript a komponentmi WebKit s ďalšími záplatami.
Zdroj: opennet.ru
