Jarred Sumner, skaberen og hovedudvikleren af den serverbaserede JavaScript-platform Bun, har anerkendt det succesfulde eksperiment med at omskrive projektet fra Zig- og Rust-sprog ved hjælp af AI-assistenten Claude Code og har besluttet at konvertere Bun til Rust-sprog. Den omskrevne version i Rust er allerede blevet accepteret i hovedrepositoryet for projektet, mens koden på Zig er planlagt til at blive fjernet. Derudover har skaberen af Bun annonceret ansættelsen af medarbejdere til at støtte Bun med mere end 5 års erfaring inden for C/C++ og Rust-udvikling.
I øjeblikket er der implementeret en direkte port i Rust fra Zig, som inkluderer mange blokke af unsafe-kode, bruger samme arkitektur, de samme datatyper og tidligere eksterne biblioteker. Det rapporteres, at porten til Rust har bestået kontrollen med den eksisterende testsuite på alle platforme. Samtidig er flere hukommelseslækager og fejl i tests blevet rettet.
Efter bygningen af versionen i Rust viste den eksekverbare fil sig at være 3-8 MB mindre end ved bygningen af versionen i Zig. I ydelsestests viste versionen i Rust sig at være enten hurtigere eller på samme niveau. ifølge Jarred er det vigtigste ved versionen i Rust muligheden for at indsamle og forhindre fejl i arbejdet med hukommelse, hvilket i de seneste år har taget meget tid fra udviklerne af Bun.
Som en grund til omskrivningen til Rust blev tidligere nævnt ønsket om at løse de problemer i Bun, som blev forårsaget af hukommelseslækager, uoverensstemmelser med Zig-forfatterne angående anvendelsen af AI til at skrive kode, og Zig's politik for større projekter i forhold til accept af ændringer, der bryder med kompatibilitet.
JavaScript-platformen Bun udvikler sig til et højtydende alternativ til Node.js og Deno platforme. Projektet udvikles med fokus på at sikre kompatibilitet med serverapplikationer til Node.js og understøtter størstedelen af Node.js API'er. Platformen indeholder et sæt værktøjer til at oprette og køre applikationer med JavaScript og TypeScript, samt en runtime til at køre JavaScript-applikationer uden en browser, en package manager (kompatibel med NPM), værktøjer til at udføre tests, et system til at bygge selvstændige pakker og en lag til integration af håndterere skrevet i C. Med hensyn til ydeevne overgår Bun tydeligt Deno og Node.js (i tests baseret på React-rammen overgår Bun platformen Deno med det dobbelte og næsten 5 gange Node.js). For at udføre JavaScript anvendes JavaScript-motoren JavaScriptCore og komponenterne fra WebKit-projektet med yderligere patches.
Kilde: opennet.ru
