Bun 1.4, ஒரு built-in WebView API-உடன் வருகிறது. இது Playwright அல்லது Puppeteer ஆகியவற்றிற்குத் தேவைப்படும் வழக்கமான RAM அளவில் மூன்றில் ஒரு பங்கு மட்டுமே பயன்படுத்தி, headless Chromium அல்லது WebKit-ஐ இயக்குகிறது. இது AI சார்ந்த scraping மற்றும் browser automation-களுக்கு டெவலப்பர்களுக்கு ஒரு சிக்கனமான (trim) விருப்பத்தை வழங்குகிறது.
Bun 1.4 எவற்றைக் கூடுதலாக வழங்குகிறது
இந்த வெளியீட்டின் முக்கிய அம்சம் Bun.WebView ஆகும். இது Chrome DevTools Protocol-ஐ Bun runtime-லிருந்து நேரடியாக வழங்குகிறது, எனவே ஒரு டெவலப்பர் வெளிப்புற npm packages அல்லது driver binaries-களை நிறுவத் தேவையில்லை, நேரடியாக ஒரு headless browser-ஐ உருவாக்க முடியும். மேலும், இந்த API macOS-இல் WebKit backend-ஐயும் வழங்குகிறது, இதன் மூலம் பயனர்கள் தங்கள் பணிச்சுமைக்கு (workload) ஏற்ற engine-ஐத் தேர்ந்தெடுக்க முடியும்.
நினைவகச் சேமிப்பு (memory savings) எவ்வாறு செயல்படுகிறது
Playwright அல்லது Puppeteer மூலம் இயக்கப்படும் ஒரு முழுமையான Chromium instance, சாதாரணப் பக்கங்களுக்குக் கூட வழக்கமாக 500 MB-க்கும் அதிகமான resident memory-யைப் பயன்படுத்துகிறது. ஆனால், "சிக்கலான பக்கங்களுக்கு" (complex pages) Bun.WebView 192 MB-256 MB அளவிலேயே பயன்பாட்டைக் காட்டுகிறது. runtime உடன் நெருக்கமான ஒருங்கிணைப்பு மற்றும் பல கனமான (heavyweight) கூறுகளைத் தவிர்க்கும் headless mode-இல் உலாவியை இயக்கும் திறன் ஆகியவற்றால் இந்த நினைவகக் குறைப்பு சாத்தியமாகிறது.
நிஜ உலக சோதனை: Claude Code-க்கான ஒரு சிறிய JSON API
Simon Willison ஒரு முன்மாதிரியை (proof-of-concept) உருவாக்கினார். இது Claude Code—குறியீடுகளை (code) உருவாக்கக்கூடிய ஆனால் கிளிக் செய்யவோ அல்லது JavaScript-ஐ render செய்யவோ முடியாத ஒரு LLM—ஒரு பக்கத்தை scrape செய்து தன்னிச்சையான ஸ்கிரிப்ட்களை (arbitrary scripts) இயக்க அனுமதிக்கிறது. இந்த அமைப்பு ஒரு குறைந்தபட்ச TypeScript server-ஐக் கொண்டுள்ளது:
- இலக்கு URL மற்றும் விருப்பத்தேர்வு JavaScript உடன் ஒரு கோரிக்கையைப் பெறுகிறது.
new WebView({ url })-ஐ உருவாக்குகிறது.- பக்கத்திற்குள் குறியீட்டை இயக்க
evaluate(script)-ஐ அழைக்கிறது. - முடிவை JSON ஆகத் திருப்பித் தருகிறது.
இந்த முழுச் சேவையும் ஒரு சிறிய container-க்குள் எளிதாக அடங்கும் வகையில் மிகச் சிறியதாக இயங்குகிறது, இது சாதாரண scraping பணிகளுக்காகப் பயன்படுத்தப்படும் 1 GB container-களை விட மிகச் சிறியது. கீழே உள்ள குறியீடு அதன் முக்கிய தர்க்கத்தை (core logic) விளக்குகிறது:
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=… என்று கோரிக்கை விடுத்து, render செய்யப்பட்ட தரவைப் பெற முடியும். இது ஒரு முழுமையான browser stack-ன் கூடுதல் சுமை (overhead) இன்றி அதன் திறன்களைத் திறம்பட விரிவுபடுத்துகிறது.
Bun.WebView எப்போது பயனுள்ளதாக இருக்கும்
- குறைந்த நினைவகம் கொண்ட சூழல்கள் (Low-memory environments) – RAM மிக முக்கியமானதாக இருக்கும் edge அல்லது serverless தளங்களுக்கு இது சிறந்தது.
- செலவு குறைந்த வழிமுறைகள் (Cost-sensitive pipelines) – ஒரு LLM agent-க்கு அருகில் ஒரு இலகுரக (lightweight) container-ஐ இயக்குவது உள்கட்டமைப்புச் செலவைக் குறைக்கும்.
- எளிய தானியங்கி செயல்பாடுகள் (Simple automation) – தலைப்புப் பிரித்தெடுத்தல் (title extraction), ஸ்கிரீன்ஷாட் எடுத்தல் அல்லது ஒற்றைப் பக்க படிவத்தைச் சமர்ப்பித்தல் (single-page form submission) போன்ற பணிகள் எளிதாகச் செய்ய முடியும்.
இந்த API காட்சிச் சோதனை (visual testing - ஸ்கிரீன்ஷாட்களைப் படம் பிடித்து ஒப்பிடுதல்) மற்றும் பல படிநிலைகளைக் கொண்ட படிவ நிரப்புதல் (multi-step form filling) ஆகியவற்றையும் ஆதரிக்கிறது. இது கனமான framework-களைப் பயன்படுத்தாமல், தேவையான அளவு browser சக்தியை மட்டும் விரும்பும் டெவலப்பர்களுக்கு ஒரு பன்முகத்தன்மை கொண்ட கருவியாகும்.
கவனிக்க வேண்டிய விஷயங்கள் (Caveats)
Bun.WebView ஒரு புதிய அம்சம் என்பதால், இதன் அம்சங்கள் Playwright மற்றும் Puppeteer போன்ற முதிர்ந்த சூழல்களை விடப் பின்தங்கியுள்ளன. நெட்வொர்க் இடைமறிப்பு (network interception), பல உலாவிகளை ஒருங்கிணைத்தல் (multi-browser orchestration) அல்லது விரிவான பிளகின் ஆதரவு போன்ற மேம்பட்ட பயன்பாடுகளுக்கு இன்னும் பழைய கருவிகள் தேவைப்படலாம். மேலும், பெரிய framework-கள் வழங்கும் விரிவான inspector UI இன்னும் இந்த built-in API-இல் இல்லை என்பதால், பிழைத்திருத்தம் (debugging) செய்வதும் சற்று மேனுவலாகவே இருக்கும்.
அடுத்து என்ன எதிர்பார்க்கலாம்
Bun.WebView தனது திறன்களை எவ்வளவு விரைவாக விரிவுபடுத்துகிறது என்பதை சமூகத்தின் எதிர்வினை தீர்மானிக்கும். ஆரம்பகாலப் பயனர்கள் (Early adopters) wrappers, testing utilities மற்றும் integration guides போன்றவற்றை வெளியிடுவார்கள், இது ஏற்கனவே உள்ள automation தொகுப்புகளுடனான இடைவெளியைக் குறைக்க உதவும். செயல்திறன் மேம்பாடுகள் (performance tweaks), கூடுதல் browser engine விருப்பங்கள் மற்றும் பாதுகாப்பு வலுப்படுத்துதல் (security hardening) ஆகியவற்றைக் கண்காணிக்க Bun-இன் release notes-களைத் தொடர்ந்து கவனியுங்கள்.
சுருக்கமாக: Bun 1.4-இன் WebView, டெவலப்பர்களுக்குத் தேவையான அளவு மட்டும் பயன்படுத்தக்கூடிய, குறைந்த நினைவகம் கொண்ட headless browsing முறையை வழங்குகிறது. இது குறைந்த செலவில், container-களுக்கு ஏற்ற வகையில் AI சார்ந்த scraping மற்றும் automation-களுக்கு வழிவகுக்கிறது—இதன் தற்போதைய அம்சங்கள் உங்கள் பணிச்சுமைக்கு ஏற்றதாக இருந்தால் மட்டுமே இது முழுமையாகப் பயன்படும்.
