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 से अधिक रेजिडेंट मेमोरी (resident memory) लेता है। Bun.WebView "जटिल पेजों" (complex pages) के लिए 192 MB-256 MB की रेंज में उपयोग दिखाता है। यह कमी रनटाइम के साथ बेहतर एकीकरण और ब्राउज़र को हेडलेस मोड में चलाने की क्षमता से आती है, जो उन कई भारी-भरकम (heavyweight) कंपोनेंट्स को छोड़ देता है जिन्हें सामान्य ऑटोमेशन टूल्स लोड करके रखते हैं।
रियल-वर्ल्ड टेस्ट: Claude Code के लिए एक छोटा JSON API
Simon Willison ने एक प्रूफ-ऑफ-कॉन्सेप्ट बनाया है जो Claude Code—एक LLM जो कोड तो जनरेट कर सकता है लेकिन क्लिक या JavaScript रेंडर नहीं कर सकता—को एक पेज स्क्रैप करने और मनमाने (arbitrary) स्क्रिप्ट्स चलाने की अनुमति देता है। इस सेटअप में एक न्यूनतम 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 कब उपयोगी है
- कम मेमोरी वाले वातावरण – एज (edge) या सर्वरलेस प्लेटफॉर्म के लिए आदर्श जहाँ RAM की कमी होती है।
- लागत-संवेदनशील पाइपलाइन – LLM एजेंट के साथ एक लाइटवेट कंटेनर चलाने से इंफ्रास्ट्रक्चर का खर्च कम रहता है।
- सरल ऑटोमेशन – टाइटल एक्सट्रैक्शन, स्क्रीनशॉट कैप्चर, या सिंगल-पेज फॉर्म सबमिशन जैसे कार्य सीधे तौर पर (out of the box) काम करते हैं।
यह API विजुअल टेस्टिंग (स्क्रीनशॉट कैप्चर और डिफ) और मल्टी-स्टेप फॉर्म फिलिंग का भी समर्थन करता है, जो इसे उन डेवलपर्स के लिए एक बहुमुखी (versatile) टूल बनाता है जिन्हें किसी भारी-भरकम फ्रेमवर्क के बिना केवल पर्याप्त ब्राउज़र पावर की आवश्यकता होती है।
विचार करने योग्य सावधानियां
Bun.WebView एक नया एडिशन है, इसलिए इसकी फीचर सेट Playwright और Puppeteer के परिपक्व (mature) इकोसिस्टम से पीछे है। उन्नत उपयोग के मामले—जैसे नेटवर्क इंटरसेप्शन, मल्टी-ब्राउज़र ऑर्केस्ट्रेशन, या व्यापक प्लगइन सपोर्ट—के लिए अभी भी पुराने टूल्स की आवश्यकता हो सकती है। डिबगिंग भी अधिक मैनुअल है, क्योंकि बिल्ट-इन API अभी तक वह रिच इंस्पेक्टर UI प्रदान नहीं करता है जो बड़े फ्रेमवर्क के साथ आता है।
आगे क्या देखें
कम्युनिटी की प्रतिक्रिया यह तय करेगी कि Bun.WebView कितनी तेज़ी से अपनी क्षमताओं का विस्तार करता है। शुरुआती अपनाने वाले (early adopters) संभवतः रैपर्स, टेस्टिंग यूटिलिटीज और इंटीग्रेशन गाइड प्रकाशित करेंगे जो स्थापित ऑटोमेशन सूट्स के साथ के अंतर को कम कर सकते हैं। परफॉरमेंस ट्वीक्स, अतिरिक्त ब्राउज़र इंजन विकल्प और किसी भी सुरक्षा सुदृढ़ीकरण (security hardening) के लिए Bun के रिलीज़ नोट्स पर नज़र रखें।
निष्कर्ष: Bun 1.4 का WebView डेवलपर्स को हेडलेस ब्राउज़िंग के लिए एक हल्का और कम मेमोरी वाला रास्ता देता है, जो सस्ते, कंटेनर-फ्रेंडली AI-संचालित स्क्रैपिंग और ऑटोमेशन के द्वार खोलता है—बशर्ते वर्कलोड इसके वर्तमान फीचर दायरे के भीतर हो।
