Eszközök

Mesterséges intelligenciával generált szöveg

Shot-scraper-stílusú JSON API prototípus a Bun 1.4 új Bun.WebView funkciójával

A főszereplő a Bun JavaScript runtime és azon belül a frissen bevezetett Bun.WebView komponens, amelyet a Bun 1.4 kiadása hozott be.

Shot-scraper-stílusú JSON API prototípus a Bun 1.4 új Bun.WebView funkciójával

A Bun 1.4 megjelent — ez a kiadás az első stabil változat a projektnek azután, hogy néhány hónappal ezelőtt a kódot Zigről Rustra írták át. A kiadási jegyzetekben a Rust-átírást meglepően háttérbe szorították, miközben a verzió egy sor nagyobb újítást és mérhető teljesítményjavulást sorol fel.

A kiadási anyag szerint a Bun 1.4 többek között a következőket hozza:

  • +1,517 teszt a Node.js tesztkészletből, ami a legnagyobb előrelépés a Node.js kompatibilitás terén a Bun 1.0 óta.
  • Több mint 2,900 javított probléma.
  • Az üresjárati CPU-használat ötszörös csökkentése.
  • Memóriafelhasználás csökkenése akár 35%-kal.
  • Indulási idő felgyorsítása Linuxon körülbelül 50%-kal.

Emellett a kiadás új API-kat és parancsokat vezet be, többek közt: Bun.Image, Bun.WebView, Bun.markdown, Bun.cron(), Bun.Terminal, bun run --parallel, bun test --parallel, bun audit fix, bun dedupe és bun prune.

Bun.WebView: beépített böngésző-automatizálás

A különösen figyelemre méltó újítás a Bun.WebView, amely első osztályú támogatást ad böngészőautomatizáláshoz a Bun magjában. A megoldás két módon működik: macOS alatt natív WebKit használatával, vagy helyi Chromium folyamat vezérlésével a Chrome DevTools Protocol (CDP) segítségével. Ez lehetővé teszi webböngészőkhöz kötődő műveletek közvetlen indítását és vezérlését a Bun környezetből.

Miért számít ez: a WebView integráció egyszerűsítheti az olyan feladatok építését, amelyek oldalbetöltést, DOM-manipulációt vagy távoli JavaScript futtatást igényelnek, anélkül hogy külső böngészővezérlő könyvtárakat kellene külön telepíteni és konfigurálni.

Prototype: shot-scraper-stílusú JSON API TypeScriptben

A tesztelés részeként a szerző Claude Code segítségével készíttetett egy TypeScript szerverprototípust, amely egy shot-scraper-stílusú web API-t valósít meg. A prototípus célja az volt, hogy betöltsön egy weboldalt és JavaScriptet hajtson végre rajta, hasonlóan a shot-scraper CLI viselkedéséhez, valamint hogy felmérje, mekkora RAM-szükséglete van egy ilyen szolgáltatás futtatásának.

A publikusan említett TypeScript szerverimplementációt használva a kísérletek során konténerizált környezetben (cgroups) mérték a memóriaigényt. A mérések szerint egy teljes Chromium-mal végzett, összetett oldalakra vonatkozó futtatás körülbelül 192–256 MB konténermemóriát igényel.

Fontos megjegyezni, hogy ez a szám az adott prototípus és tesztkörnyezet függvénye: a pontos értékek változhatnak a betöltött oldalak összetettségétől, a Chromium verziójától és a konfigurációs beállításoktól.

Miért fontos mindez?

A Bun 1.4 nagy lépést jelent a Node.js-kompatibilitásban és a teljesítményben, miközben beépített eszközöket hoz webes automatizáláshoz és szerveroldali műveletekhez. A Bun.WebView különösen hasznos lehet fejlesztők és automatizálási feladatokat végző rendszerek számára, mert egyszerűsíti a böngészőalapú interakciókat és csökkentheti a külső függőségek szükségességét.

A prototípus tapasztalatai azt mutatják, hogy egy teljes Chromium-vezérelt munkafolyamat konténeres környezetben mérsékelt memóriaigénnyel működhet, de a tényleges erőforrás-szükséglet a használati eset függvénye.

Címkék

browsers, javascript, ai, rust, typescript, generative-ai, llms, coding-agents, bun