Bun 1.4 ਵਿੱਚ ਇੱਕ ਬਿਲਟ-ਇਨ WebView API ਸ਼ਾਮਲ ਹੈ ਜੋ ਲਗਭਗ Playwright ਜਾਂ Puppeteer ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਣ ਵਾਲੀ RAM ਦੇ ਇੱਕ ਤਿਹਾਈ ਹਿੱਸੇ ਦੀ ਵਰਤੋਂ ਕਰਕੇ headless Chromium ਜਾਂ WebKit ਚਲਾਉਂਦੀ ਹੈ, ਜੋ ਡਿਵੈਲਪਰਾਂ ਨੂੰ AI-ਅਧਾਰਿਤ ਸਕ੍ਰੇਪਿੰਗ ਅਤੇ ਬ੍ਰਾਊਜ਼ਰ ਆਟੋਮੇਸ਼ਨ ਲਈ ਇੱਕ ਸੁਚੱਜਾ ਵਿਕਲਪ ਪ੍ਰਦਾਨ ਕਰਦੀ ਹੈ।
Bun 1.4 ਵਿੱਚ ਕੀ ਨਵਾਂ ਹੈ
ਇਸ ਰਿਲੀਜ਼ ਦੀ ਮੁੱਖ ਵਿਸ਼ੇਸ਼ਤਾ Bun.WebView ਹੈ। ਇਹ Bun runtime ਤੋਂ ਸਿੱਧੇ ਤੌਰ 'ਤੇ Chrome DevTools Protocol ਨੂੰ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਤਾਂ ਜੋ ਇੱਕ ਡਿਵੈਲਪਰ ਬਾਹਰੀ npm ਪੈਕੇਜਾਂ ਜਾਂ ਡਰਾਈਵਰ ਬਾਈਨਰੀਆਂ ਨੂੰ ਇੰਸਟਾਲ ਕੀਤੇ ਬਿਨਾਂ ਇੱਕ headless ਬ੍ਰਾਊਜ਼ਰ ਸ਼ੁਰੂ ਕਰ ਸਕੇ। ਇਹ API macOS 'ਤੇ ਇੱਕ WebKit ਬੈਕਐਂਡ ਵੀ ਪੇਸ਼ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਉਪਭੋਗਤਾ ਅਜਿਹੇ ਇੰਜਣ ਦੀ ਚੋਣ ਕਰ ਸਕਦੇ ਹਨ ਜੋ ਉਹਨਾਂ ਦੇ ਵਰਕਲੋਡ ਲਈ ਸਭ ਤੋਂ ਢੁਕਵਾਂ ਹੋਵੇ।
ਮੈਮੋਰੀ ਦੀ ਬਚਤ ਕਿਵੇਂ ਕੰਮ ਕਰਦੀ ਹੈ
Playwright ਜਾਂ Puppeteer ਰਾਹੀਂ ਚਲਾਇਆ ਗਿਆ ਇੱਕ ਪੂਰਾ Chromium ਇੰਸਟੈਂਸ, ਇੱਥੋਂ ਤੱਕ ਕਿ ਸਧਾਰਨ ਪੇਜਾਂ ਲਈ ਵੀ, ਨਿਯਮਤ ਤੌਰ 'ਤੇ 500 MB ਤੋਂ ਵੱਧ ਰੈਜ਼ੀਡੈਂਟ ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। Bun.WebView "ਕੰਪਲੈਕਸ ਪੇਜਾਂ" ਲਈ 192 MB-256 MB ਦੀ ਰੇਂਜ ਵਿੱਚ ਵਰਤੋਂ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ ਕਮੀ ਰਨਟਾਈਮ ਨਾਲ ਬਿਹਤਰ ਤਾਲਮੇਲ ਅਤੇ ਬ੍ਰਾਊਜ਼ਰ ਨੂੰ ਇੱਕ ਅਜਿਹੇ headless ਮੋਡ ਵਿੱਚ ਚਲਾਉਣ ਦੀ ਯੋਗਤਾ ਤੋਂ ਆਉਂਦੀ ਹੈ ਜੋ ਬਹੁਤ ਸਾਰੇ ਭਾਰੀ (heavyweight) ਕੰਪੋਨੈਂਟਾਂ ਨੂੰ ਛੱਡ ਦਿੰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਆਮ ਆਟੋਮੇਸ਼ਨ ਟੂਲ ਲੋਡ ਕਰਕੇ ਰੱਖਦੇ ਹਨ।
ਅਸਲ-ਦੁਨੀਆ ਦਾ ਟੈਸਟ: Claude Code ਲਈ ਇੱਕ ਛੋਟੀ JSON API
Simon Willison ਨੇ ਇੱਕ ਪਰੂਫ-ਆਫ-ਕੰਸੈਪਟ ਬਣਾਇਆ ਹੈ ਜੋ Claude Code—ਇੱਕ LLM ਜੋ ਕੋਡ ਤਿਆਰ ਕਰ ਸਕਦਾ ਹੈ ਪਰ ਕਲਿੱਕ ਜਾਂ JavaScript ਰੈਂਡਰ ਨਹੀਂ ਕਰ ਸਕਦਾ—ਨੂੰ ਇੱਕ ਪੇਜ ਨੂੰ ਸਕ੍ਰੇਪ ਕਰਨ ਅਤੇ ਕਿਸੇ ਵੀ ਸਕ੍ਰਿਪਟ ਨੂੰ ਚਲਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਇਸ ਸੈੱਟਅੱਪ ਵਿੱਚ ਇੱਕ ਮਿਨੀਮਲ TypeScript ਸਰਵਰ ਸ਼ਾਮਲ ਹੈ ਜੋ:
- ਇੱਕ ਟਾਰਗੇਟ URL ਅਤੇ ਵਿਕਲਪਿਕ JavaScript ਦੇ ਨਾਲ ਰਿਕਵੈਸਟ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।
new WebView({ url })ਨੂੰ ਇੰਸਟੈਂਸ਼ੀਏਟ ਕਰਦਾ ਹੈ।- ਪੇਜ ਦੇ ਅੰਦਰ ਕੋਡ ਚਲਾਉਣ ਲਈ
evaluate(script)ਨੂੰ ਕਾਲ ਕਰਦਾ ਹੈ। - ਨਤੀਜੇ ਨੂੰ JSON ਵਜੋਂ ਵਾਪਸ ਕਰਦਾ ਹੈ।
ਪੂਰੀ ਸੇਵਾ ਇੱਕ ਅਜਿਹੇ ਕੰਟੇਨਰ ਵਿੱਚ ਚੱਲਦੀ ਹੈ ਜੋ ਇੱਕ ਛੋਟੇ ਕੰਟੇਨਰ ਵਿੱਚ ਆਸਾਨੀ ਨਾਲ ਆ ਸਕਦਾ ਹੈ, ਜੋ ਕਿ ਸਧਾਰਨ ਸਕ੍ਰੇਪਿੰਗ ਕੰਮਾਂ ਲਈ ਅਕਸਰ ਵਰਤੇ ਜਾਣ ਵਾਲੇ 1 GB ਦੇ ਕੰਟੇਨਰਾਂ ਤੋਂ ਕਿਤੇ ਜ਼ਿਆਦਾ ਘੱਟ ਹੈ। ਹੇਠਾਂ ਦਿੱਤਾ
