Bun 1.4, JavaScript- ja TypeScript-sovellusten itsenäiseen suorittamiseen suunniteltu alusta, jonka on tarkoitus korvata Node.js saumattomalla tavalla, on julkaistu. 1.4-haara on merkittävä koodikannan migraatiostaan Zigistä Rustiin, joka on toteutettu Clauden tekoälytyökaluilla. Koodi on edelleen MIT-lisenssin alaista.
Rustiin uudelleenkirjoittamisen syiksi mainittiin halu korjata Bunissa muistivuotoja aiheuttavia ongelmia, sekä erimielisyydet Zigin kirjoittajien kanssa tekoälyn käytöstä koodauksessa ja Zigin käytäntö hyväksyä yhteensopivuutta rikkovia kielimuutoksia, mikä on mahdotonta hyväksyä suurissa projekteissa. Rustiin siirtymisen tärkein etu on kyky havaita ja estää muistivirheet, jotka ovat vieneet Bunin kehittäjien aikaa viime vuosina.
Vertailuarvojen perusteella Rust-versio kuluttaa 13–48 % vähemmän muistia, käynnistyy kaksi kertaa nopeammin ja käyttää jopa viisi kertaa vähemmän prosessoritehoa lepotilassa. Rust-version suoritettavan tiedoston kokoa on pienennetty 17 %. Kun Claude Codea käytettiin Bun 1.4:llä, prosessorin kuormitus puolittui.
Julkaisu sisältää 1 517 uutta yhteensopivuustestiä ja korjaa yli 2 900 ongelmaa. Perusjakeluun on lisätty uudet kirjastot Bun.Image, Bun.WebView, Bun.markdown, Bun.cron() ja Bun.Terminal. Rinnakkainen suoritustila (--parallel) on nyt toteutettu "bun run"- ja "bun test" -komennoissa. Yhteensopivuus Next.js 16- ja vitest-kehysten kanssa on nyt varmistettu.
Bun-projekti tukee useimpia Node.js-ohjelmointirajapintoja. Alusta sisältää joukon työkaluja JavaScript- ja TypeScript-sovellusten luomiseen ja suorittamiseen sekä ajonaikaisen ympäristön JavaScript-sovellusten suorittamiseen ilman selainta, paketinhallintaohjelman (NPM-yhteensopiva), testityökaluja, itsenäisen pakettien rakentajan ja kerroksen C-kielellä kirjoitettujen käsittelijöiden upottamiseen. Suorituskyvyn suhteen Bun on merkittävästi Denon ja Node.js:n parempi (React-kehykseen perustuvissa testeissä Bun on Denon kaksinkertaisesti ja Node.js:n lähes viisinkertaisesti parempi). JavaScriptin suorittamisessa käytetään JavaScriptCore JavaScript -moottoria ja WebKit-komponentteja lisäkorjauksilla.
Lähde: opennet.ru
