Bun 1.4-ൽ ഒരു ഇൻബിൽറ്റ് WebView API ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഇത് Playwright അല്ലെങ്കിൽ Puppeteer ഉപയോഗിക്കുമ്പോൾ ആവശ്യമായി വരുന്ന റാം (RAM) അളവിന്റെ ഏകദേശം മൂന്നിലൊന്ന് മാത്രം ഉപയോഗിച്ച് headless Chromium അല്ലെങ്കിൽ WebKit പ്രവർത്തിപ്പിക്കുന്നു. ഇത് AI അധിഷ്ഠിത സ്ക്രാപ്പിംഗിനും (scraping) ബ്രൗസർ ഓട്ടോമേഷനും ഡെവലപ്പർമാർക്ക് മികച്ചൊരു ഓപ്ഷൻ നൽകുന്നു.
Bun 1.4 നൽകുന്ന പുതിയ കാര്യങ്ങൾ
ഈ റിലീസിലെ പ്രധാന സവിശേഷത Bun.WebView ആണ്. ഇത് Bun runtime-ൽ നിന്ന് നേരിട്ട് Chrome DevTools Protocol ലഭ്യമാക്കുന്നു, അതിനാൽ ഒരു ഡെവലപ്പർക്ക് പുറമെ നിന്ന് npm പാക്കേജുകളോ ഡ്രൈവർ ബൈനറികളോ ഇൻസ്റ്റാൾ ചെയ്യാതെ തന്നെ ഒരു headless ബ്രൗസർ പ്രവർത്തിപ്പിക്കാൻ സാധിക്കും. macOS-ൽ WebKit backend-ഉം ഈ API വാഗ്ദാനം ചെയ്യുന്നു, ഇത് ഉപയോക്താക്കൾക്ക് അവരുടെ വർക്ക്ലോഡിന് അനുയോജ്യമായ എഞ്ചിൻ തിരഞ്ഞെടുക്കാൻ സഹായിക്കുന്നു.
മെമ്മറി ലാഭിക്കുന്നത് എങ്ങനെ
Playwright അല്ലെങ്കിൽ Puppeteer വഴി പ്രവർത്തിപ്പിക്കുന്ന ഒരു പൂർണ്ണ Chromium ഇൻസ്റ്റൻസ്, സാധാരണ പേജുകൾക്ക് പോലും 500 MB-യിൽ കൂടുതൽ മെമ്മറി ഉപയോഗിക്കാറുണ്ട്. എന്നാൽ "സങ്കീർണ്ണമായ പേജുകൾക്ക്" (complex pages) Bun.WebView ഉപയോഗിക്കുമ്പോൾ 192 MB മുതൽ 256 MB വരെയുള്ള മെമ്മറി ഉപയോഗം മാത്രമേ കാണിക്കുന്നുള്ളൂ. റൺടൈമുമായുള്ള (runtime) അടുത്ത സംയോജനവും, സാധാരണ ഓട്ടോമേഷൻ ടൂളുകൾ ലോഡ് ചെയ്യുന്ന ഭാരമേറിയ ഘടകങ്ങൾ ഒഴിവാക്കി headless മോഡിൽ ബ്രൗസർ പ്രവർത്തിപ്പിക്കാനുള്ള കഴിവും ആണ് ഈ കുറവിന് കാരണം.
റിയൽ വേൾഡ് ടെസ്റ്റ്: Claude Code-ന് വേണ്ടിയുള്ള ഒരു ചെറിയ JSON API
കോഡ് നിർമ്മിക്കാൻ കഴിയുമെങ്കിലും ക്ലിക്ക് ചെയ്യാനോ JavaScript റെൻഡർ ചെയ്യാനോ കഴിയാത്ത ഒരു LLM ആയ Claude Code-ന്, ഒരു പേജ് സ്ക്രാപ്പ് ചെയ്യാനും ഇഷ്ടമുള്ള സ്ക്രിപ്റ്റുകൾ പ്രവർത്തിപ്പിക്കാനും സാധിക്കുന്ന ഒരു പ്രൂഫ്-ഓഫ്-കോൺസെപ്റ്റ് Simon Willison നിർമ്മിച്ചു. ഇതിൽ ഉൾപ്പെട്ടിരിക്കുന്ന ഒരു മിനിമൽ TypeScript സെർവർ താഴെ പറയുന്നവ ചെയ്യുന്നു:
- ടാർഗെറ്റ് URL-ഉം ഓപ്ഷണൽ JavaScript-ഉം അടങ്ങിയ ഒരു റിക്വസ്റ്റ് സ്വീകരിക്കുന്നു.
new WebView({ url })ഇൻസ്റ്റാന്ഷ്യേറ്റ് ചെയ്യുന്നു.- പേജിനുള്ളിൽ കോഡ് പ്രവർത്തിപ്പിക്കാൻ
evaluate(script)വിളിക്കുന്നു. - ഫലം JSON ആയി തിരികെ നൽകുന്നു.
ഈ സേവനം മുഴുവനായും വളരെ ചെറിയ ഒരു കണ്ടെയ്നറിൽ പ്രവർത്തിപ്പിക്കാൻ സാധിക്കും; സാധാരണ സ്ക്രാപ്പിംഗ് ജോലികൾക്കായി ഉപയോഗിക്കുന്ന 1 GB കണ്ടെയ്നറുകളേക്കാൾ വളരെ കുറഞ്ഞ അളവിൽ ഇത് മതിയാകും. അതിന്റെ പ്രധാന ലോജിക് താഴെ നൽകുന്നു:
import { WebView } from "bun";
const server = Bun.serve({
port: 3000,
async fetch(req) {
const url = new URL(req.url);
if (url.pathname === "/scrape") {
const target = url.searchParams.get("url");
const script = url.searchParams.get("script") || "return document.title";
const wv = new WebView({ url: target });
const result = await wv.evaluate(script);
return Response.json({ result });
}
return new Response("Not found", { status: 404 });
},
});
Claude Code-ന് ഇപ്പോൾ /scrape?url=…&script=… എന്ന് റിക്വസ്റ്റ് അയച്ച് റെൻഡർ ചെയ്ത ഡാറ്റ സ്വീകരിക്കാൻ കഴിയും. ഇത് ഒരു പൂർണ്ണ ബ്രൗസർ സ്റ്റാക്കിന്റെ ഭാരമില്ലാതെ തന്നെ അതിന്റെ കഴിവുകൾ വർദ്ധിപ്പിക്കുന്നു.
Bun.WebView എപ്പോഴൊക്കെ ഉപയോഗിക്കാം
- കുറഞ്ഞ മെമ്മറി സാഹചര്യങ്ങൾ – റാം (RAM) പരിമിതമായ എഡ്ജ് (edge) അല്ലെങ്കിൽ സെർവ്ലെസ് (serverless) പ്ലാറ്റ്ഫോമുകൾക്ക് അനുയോജ്യം.
- ചെലവ് കുറഞ്ഞ പൈപ്പ്ലൈനുകൾ – ഒരു LLM ഏജന്റിനൊപ്പം ഭാരം കുറഞ്ഞ ഒരു കണ്ടെയ്നർ പ്രവർത്തിപ്പിക്കുന്നത് ഇൻഫ്രാസ്ട്രക്ചർ ചെലവ് കുറയ്ക്കാൻ സഹായിക്കുന്നു.
- ലളിതമായ ഓട്ടോമേഷൻ – ടൈറ്റിൽ എക്സ്ട്രാക്ഷൻ (title extraction), സ്ക്രീൻഷോട്ട് എടുക്കൽ, അല്ലെങ്കിൽ സിംഗിൾ പേജ് ഫോം സബ്മിഷൻ തുടങ്ങിയ ജോലികൾ എളുപ്പത്തിൽ ചെയ്യാൻ സാധിക്കും.
വിഷ്വൽ ടെസ്റ്റിംഗിനും (സ്ക്രീൻഷോട്ടുകൾ എടുക്കാനും അവ തമ്മിലുള്ള വ്യത്യാസം കണ്ടെത്താനും), മൾട്ടി-സ്റ്റെപ്പ് ഫോം ഫില്ലിംഗിനും ഈ API പിന്തുണ നൽകുന്നു. അതിനാൽ ഭാരമേറിയ ഫ്രെയിംവർക്കുകൾ ഉപയോഗിക്കാതെ തന്നെ ബ്രൗസർ പവർ ആവശ്യമുള്ള ഡെവലപ്പർമാർക്ക് ഇതൊരു മികച്ച ടൂൾ ആണ്.
ശ്രദ്ധിക്കേണ്ട കാര്യങ്ങൾ
Bun.WebView ഒരു പുതിയ കൂട്ടിച്ചേർക്കൽ ആയതുകൊണ്ട്, ഇതിന്റെ ഫീച്ചറുകൾ Playwright, Puppeteer എന്നിവയുടെ പക്വതയാർന്ന ഇക്കോസിസ്റ്റങ്ങളുമായി താരതമ്യം ചെയ്യുമ്പോൾ പിന്നിലായിരിക്കാം. നെറ്റ്വർക്ക് ഇന്റർസെപ്ഷൻ (network interception), മൾട്ടി-ബ്രൗസർ ഓർക്കസ്ട്രേഷൻ (multi-browser orchestration), അല്ലെങ്കിൽ വിപുലമായ പ്ലഗിൻ സപ്പോർട്ട് തുടങ്ങിയ അഡ്വാൻസ്ഡ് ആവശ്യങ്ങൾക്ക് ഇപ്പോഴും പഴയ ടൂളുകൾ ആവശ്യമായി വന്നേക്കാം. കൂടാതെ, ഇതിലെ ഇൻബിൽറ്റ് API വലിയ ഫ്രെയിംവർക്കുകൾ നൽകുന്നതുപോലെയുള്ള ഇൻസ്പെക്ടർ UI (inspector UI) നൽകുന്നില്ലാത്തതിനാൽ ഡീബഗ്ഗിംഗ് കൂടുതൽ മാനുവൽ ആയിരിക്കണം.
ഇനി എന്താണ് പ്രതീക്ഷിക്കേണ്ടത്
കമ്മ്യൂണിറ്റിയുടെ പ്രതികരണം Bun.WebView-യുടെ കഴിവുകൾ എത്ര വേഗത്തിൽ വികസിക്കും എന്ന് തീരുമാനിക്കും. നിലവിലുള്ള ഓട്ടോമേഷൻ സ്യൂട്ടുകളുമായുള്ള വ്യത്യാസം കുറയ്ക്കാൻ സഹായിക്കുന്ന റാപ്പറുകൾ (wrappers), ടെസ്റ്റിംഗ് യൂട്ടിലിറ്റികൾ, ഇന്റഗ്രേഷൻ ഗൈഡുകൾ എന്നിവ ആദ്യകാല ഉപയോക്താക്കൾ പുറത്തിറക്കാൻ സാധ്യതയുണ്ട്. പെർഫോമൻസ് മെച്ചപ്പെടുത്തലുകൾ, കൂടുതൽ ബ്രൗസർ എഞ്ചിൻ ഓപ്ഷനുകൾ, സുരക്ഷാ ക്രമീകരണങ്ങൾ എന്നിവയ്ക്കായി Bun-ന്റെ റിലീസ് നോട്ടുകൾ ശ്രദ്ധിക്കുക.
ചുരുക്കത്തിൽ: Bun 1.4-ലെ WebView ഡെവലപ്പർമാർക്ക് ഹെഡ്ലെസ് ബ്രൗസിംഗിനായി കുറഞ്ഞ മെമ്മറി ഉപയോഗിക്കുന്ന ലളിതമായ ഒരു മാർഗ്ഗം നൽകുന്നു. നിലവിലെ ഫീച്ചറുകൾ നിങ്ങളുടെ ആവശ്യങ്ങൾക്ക് അനുയോജ്യമാണെങ്കിൽ, കുറഞ്ഞ ചെലവിൽ കണ്ടെയ്നറുകളിൽ പ്രവർത്തിപ്പിക്കാവുന്ന AI അധിഷ്ഠിത സ്ക്രാപ്പിംഗിനും ഓട്ടോമേഷനും ഇത് പുതിയ വാതിലുകൾ തുറക്കുന്നു.
