Bun 1.4, platforma dizajnirana za samostalno izvršavanje JavaScript i TypeScript aplikacija, namijenjena kao besprijekorna zamjena za Node.js, objavljena je. Verzija 1.4 poznata je po migraciji kodne baze sa Ziga na Rust, što je postignuto korištenjem Claude AI alata. Kod ostaje licenciran pod MIT licencom.
Razlozi navedeni za prepisivanje na Rust uključuju želju za rješavanjem problema u Bunu uzrokovanih curenjem memorije, kao i neslaganja s autorima Ziga u vezi s korištenjem umjetne inteligencije za kodiranje i Zigovu politiku u vezi s prihvaćanjem jezičnih promjena koje narušavaju kompatibilnost, što je neprihvatljivo za velike projekte. Glavna prednost prelaska na Rust je mogućnost hvatanja i sprječavanja memorijskih pogrešaka, koje su posljednjih godina oduzimale vrijeme Bunovim programerima.
Na temelju benchmarkova, Rust verzija troši 13-48% manje memorije, pokreće se dvostruko brže i koristi do 5 puta manje CPU-a u stanju mirovanja. Veličina izvršne datoteke Rust verzije smanjena je za 17%. Prilikom pokretanja Claude Codea s Bun 1.4, opterećenje CPU-a je prepolovljeno.
Izdanje uključuje 1517 dodatnih testova kompatibilnosti i ispravlja preko 2900 problema. Osnovnoj distribuciji dodane su nove biblioteke, Bun.Image, Bun.WebView, Bun.markdown, Bun.cron() i Bun.Terminal. Paralelni način izvršavanja (--parallel) sada je implementiran u naredbama "bun run" i "bun test". Kompatibilnost s Next.js 16 i vitest okvirima sada je osigurana.
Projekt Bun 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 izradu 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 koristi JavaScriptCore JavaScript engine i WebKit komponente s dodatnim zakrpama.
Izvor: opennet.ru
