Jarred Sumner, skaparen och huvudutvecklaren av serverplattformen för JavaScript Bun, har erkänt att experimentet med att omskriva projektet från Zig och Rust med hjälp av AI-assistenten Claude Code varit framgångsrikt, och har beslutat att överföra Bun till språket Rust. Den omskrivna versionen på Rust har redan accepterats i huvudrepositoryt för projektet, medan koden på Zig planerats för borttagning. Dessutom har författaren till Bun meddelat att han anställer medarbetare för att stödja Bun, med över 5 års erfarenhet av utveckling i C/C++ och Rust.
För närvarande har en direkt portering från Zig till Rust genomförts, som inkluderar många block av osäker kod, använder samma arkitektur, samma datatyper och tidigare externa bibliotek. Det noteras att porteringen till Rust framgångsrikt har klarat testcykeln med befintliga testsviter på alla plattformar. Samtidigt har flera minnesläckor och testkrascher åtgärdats.
Efter att ha byggt versionen på Rust blev den resulterande körbara filen 3–8 MB mindre än när versionen byggdes på Zig. I prestandatester visade sig versionen på Rust antingen vara snabbare eller på samma nivå. Jarred anser att den största fördelen med versionen på Rust är möjligheten att fånga och förebygga fel i minneshanteringen, vars diagnostik under de senaste åren har tagit mycket tid från utvecklarna av Bun.
Tidigare nämndes som skäl till omskrivningen till Rust en vilja att åtgärda problem i Bun orsakade av minnesläckor, skillnader med författarna till Zig angående användningen av AI för att skriva kod, och en oacceptabel politik för stora projekt inom Zig gällande förändringar som bryter mot bakåtkompatibiliteten.
JavaScript-plattformen Bun utvecklas som ett högpresterande alternativ till plattformarna Node.js och Deno. Projektet utvecklas med fokus på att säkerställa kompatibilitet med serverapplikationer för Node.js och stöder merparten av API:erna för Node.js. Plattformen innehåller en uppsättning verktyg för att skapa och köra applikationer på JavaScript- och TypeScript-språken, såväl som en runtime för att köra JavaScript-applikationer utan webbläsare, en paketförvaltare (kompatibel med NPM), verktyg för testkörning, ett system för att bygga självbärande paket och en mellanlager för att integrera handlers skrivna i C. När det gäller prestanda överträffar Bun Deno och Node.js avsevärt (i tester baserade på React-ramverket överträffar Bun-plattformen Deno med 2 gånger och nästan 5 gånger Node.js). För att köra JavaScript används JavaScript-motorn JavaScriptCore och komponenter från WebKit-projektet med ytterligare patchar.
Källa: opennet.ru
