Jarred Sumner, tvorac i glavni programer poslužiteljske JavaScript platforme Bun, proglasio je svoj eksperiment prepisivanja projekta iz Ziga i Rusta pomoću AI asistenta Claudea Codea uspješnim te je odlučio migrirati Bun na Rust. Prepisivanje Rusta već je prihvaćeno u glavni repozitorij projekta, a Zig kod je planiran za brisanje. Autor Bun-a također je najavio zapošljavanje pomoćnog osoblja s preko pet godina iskustva u razvoju C/C++ i Rusta.
Trenutno je u Rustu implementiran izravni port Zig jezika. Uključuje brojne blokove nesigurnog koda i koristi istu arhitekturu, strukture podataka i postojeće vanjske biblioteke. Rust port je uspješno prošao postojeći skup testova na svim platformama. Također je ispravljeno nekoliko curenja memorije i neuspjeha testiranja.
Nakon izgradnje Rust verzije, izvršna datoteka bila je 3-8 MB manja od Zig verzije. U testovima performansi, Rust verzija je bila ili brža ili jednaka. Međutim, prema Jarredu, najvažnija prednost Rust verzije bila je sposobnost hvatanja i sprječavanja memorijskih pogrešaka, što je posljednjih godina bio ogroman zadatak za Bun developere.
Razlozi za prepisivanje u Rustu prethodno su navedeni kao želja za rješavanjem problema u Bunu uzrokovanih curenjem memorije, neslaganja s autorima Ziga oko korištenja umjetne inteligencije za pisanje koda i Zigova politika u vezi s prihvaćanjem promjena jezika koje narušavaju kompatibilnost, što je neprihvatljivo za velike projekte.
Bun JavaScript platforma razvija se kao visokoperformansna alternativa Node.js-u i Denou. Projekt se razvija imajući na umu kompatibilnost s Node.js poslužiteljskim aplikacijama i podržava većinu Node.js API-ja. Platforma uključuje skup alata za stvaranje i pokretanje JavaScript i TypeScript aplikacija, kao i runtime za izvršavanje JavaScript aplikacija bez preglednika, upravitelj paketa (kompatibilan s NPM-om), alate za testiranje, samostalni alat za izgradnju paketa i sloj za ugrađivanje rukovatelja napisanih u C-u. Što se tiče performansi, Bun značajno nadmašuje Deno i Node.js (u testovima temeljenim na React frameworku, Bun nadmašuje Deno za faktor 2, a Node.js za faktor gotovo 5). Izvršavanje JavaScripta podržava JavaScriptCore JavaScript engine i WebKit komponente s dodatnim zakrpama.
Izvor: opennet.ru
