Bun 1.4 સાથે એક ઇન-બિલ્ટ WebView API આવે છે જે અંદાજે Playwright અથવા Puppeteer માટે વપરાતી RAM ના ત્રીજા ભાગમાં હેડલેસ Chromium અથવા WebKit ચલાવે છે, જે ડેવલપર્સને AI-સંચાલિત સ્ક્રેપિંગ અને બ્રાઉઝર ઓટોમેશન માટે એક કાર્યક્ષમ વિકલ્પ આપે છે.

Bun 1.4 શું ઉમેરે છે

આ રિલીઝની મુખ્ય વિશેષતા Bun.WebView છે. તે Bun રનટાઇમમાંથી સીધું જ Chrome DevTools Protocol પ્રદાન કરે છે, જેથી ડેવલપર બહારના npm પેકેજો અથવા ડ્રાઈવર બાઈનરીઝ ઇન્સ્ટોલ કર્યા વિના હેડલેસ બ્રાઉઝર શરૂ કરી શકે છે. આ API macOS પર WebKit બેકએન્ડ પણ ઓફર કરે છે, જે વપરાશકર્તાઓને તેમના વર્કલોડ માટે સૌથી યોગ્ય એન્જિન પસંદ કરવાની મંજૂરી આપે છે.

મેમરી બચત કેવી રીતે કામ કરે છે

Playwright અથવા Puppeteer દ્વારા લોન્ચ કરવામાં આવેલ સંપૂર્ણ Chromium ઇન્સ્ટન્સ સામાન્ય રીતે 500 MB થી વધુ રેસિડેન્ટ મેમરી વાપરે છે, ભલે તે સામાન્ય પેજ હોય. Bun.WebView "જટિલ પેજ" (complex pages) માટે 192 MB-256 MB ની રેન્જમાં વપરાશ દર્શાવે છે. આ ઘટાડો રનટાઇમ સાથેના ગાઢ સંકલન અને બ્રાઉઝરને હેડલેસ મોડમાં ચલાવવાની ક્ષમતાને કારણે આવે છે, જે ઘણા હેવીવેઇટ ઘટકોને સ્કીપ કરે છે જે સામાન્ય ઓટોમેશન ટૂલ્સ લોડ કરીને રાખે છે.

વાસ્તવિક દુનિયાનું પરીક્ષણ: Claude Code માટે એક નાની JSON API

Simon Willison એ એક પ્રૂફ-ઓફ-કન્સેપ્ટ બનાવ્યું છે જે Claude Code—એક LLM જે કોડ જનરેટ કરી શકે છે પરંતુ ક્લિક કરી શકતું નથી અથવા JavaScript રેન્ડર કરી શકતું નથી—ને પેજ સ્ક્રેપ કરવા અને મનસ્વી સ્ક્રિપ્ટ્સ ચલાવવાની મંજૂરી આપે છે. આ સેટઅપમાં એક ન્યૂનતમ TypeScript સર્વર છે જે:

  1. ટાર્ગેટ URL અને વૈકલ્પિક JavaScript સાથેની વિનંતી (request) મેળવે છે.
  2. new WebView({ url }) ઇન્સ્ટન્શિયેટ કરે છે.
  3. પેજની અંદર કોડ ચલાવવા માટે evaluate(script) કોલ કરે છે.
  4. પરિણામ 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=… વિનંતી કરી શકે છે અને રેન્ડર કરેલ ડેટા મેળવી શકે છે, જે સંપૂર્ણ બ્રાઉઝર સ્ટેકનો વધારાનો બોજ (overhead) લીધા વિના તેની ક્ષમતાઓને અસરકારક રીતે વિસ્તૃત કરે છે.

Bun.WebView ક્યારે ઉપયોગી છે

  • ઓછી મેમરી ધરાવતા વાતાવરણ (Low-memory environments) – એજ (edge) અથવા સર્વરલેસ પ્લેટફોર્મ માટે આદર્શ જ્યાં RAM ખૂબ જ કિંમતી છે.
  • ખર્ચ-સંવેદનશીલ પાઇપલાઇન્સ – LLM એજન્ટની સાથે હળવું (lightweight) કન્ટેનર ચલાવવાથી ઇન્ફ્રાસ્ટ્રક્ચર બિલ ઓછું રહે છે.
  • સરળ ઓટોમેશન – ટાઇટલ એક્સટ્રેક્શન, સ્ક્રીનશોટ કેપ્ચર અથવા સિંગલ-પેજ ફોર્મ સબમિશન જેવા કાર્યો સીધા જ કરી શકાય છે.

આ API વિઝ્યુઅલ ટેસ્ટિંગ (સ્ક્રીનશોટ કેપ્ચર અને ડિફ) અને મલ્ટી-સ્ટેપ ફોર્મ ફિલિંગને પણ સપોર્ટ કરે છે, જે તેને એવા ડેવલપર્સ માટે એક બહુમુખી સાધન બનાવે છે જેમને હેવીવેઇટ ફ્રેમવર્ક વગર પૂરતી બ્રાઉઝર પાવરની જરૂર છે.

ધ્યાનમાં રાખવા જેવી બાબતો

Bun.WebView એક નવું ઉમેરાણ છે, તેથી તેની સુવિધાઓ Playwright અને Puppeteer ના પરિપક્વ ઇકોસિસ્ટમ કરતા પાછળ છે. એડવાન્સ્ડ ઉપયોગો—જેમ કે નેટવર્ક ઇન્ટરસેપ્શન, મલ્ટી-બ્રાઉઝર ઓર્કેસ્ટ્રેશન અથવા વ્યાપક પ્લગઇન સપોર્ટ—તેના માટે હજુ પણ જૂના સાધનોની જરૂર પડી શકે છે. ડિબગિંગ પણ વધુ મેન્યુઅલ છે, કારણ કે બિલ્ટ-ઇન API હજુ સુધી તે સમૃદ્ધ ઇન્સ્પેક્ટર UI પ્રદાન કરતું નથી જે મોટા ફ્રેમવર્ક સાથે આવે છે.

આગળ શું જોવું

સમુદાયનો પ્રતિસાદ Bun.WebView તેની ક્ષમતાઓ કેટલી ઝડપથી વિસ્તૃત કરશે તે નક્કી કરશે. પ્રારંભિક વપરાશકર્તાઓ (Early adopters) રેપર્સ, ટેસ્ટિંગ યુટિલિટીઝ અને ઇન્ટિગ્રેશન ગાઇડ્સ પ્રકાશિત કરી શકે છે જે સ્થાપિત ઓટોમેશન સુટ્સ સાથેનું અંતર ઘટાડી શકે છે. પરફોર્મન્સમાં સુધારા, વધારાના બ્રાઉઝર એન્જિન વિકલ્પો અને API ના વ્યાપક ઉપયોગ સાથે જરૂરી બનતા કોઈપણ સિક્યુરિટી હાર્ડનિંગ માટે Bun ની રિલીઝ નોટ્સ પર નજર રાખો.

ટૂંકમાં: Bun 1.4 નું WebView ડેવલપર્સને હેડલેસ બ્રાઉઝિંગ માટે એક પાતળો (lean) અને ઓછી મેમરી વાળો માર્ગ આપે છે, જે સસ્તા, કન્ટેનર-ફ્રેન્ડલી AI-સંચાલિત સ્ક્રેપિંગ અને ઓટોમેશન માટેના દ્વાર ખોલે છે—જો તમારો વર્કલોડ તેની વર્તમાન સુવિધાઓની મર્યાદામાં આવતો હોય.