Bun 1.4 и WebView: JSON-API для скриншотов за ~150 строк TypeScript

В Bun 1.4 появился Bun.WebView: автоматизация браузера прямо в рантайме, WebKit на macOS или локальный Chromium через Chrome DevTools Protocol. Simon Willison попросил Claude Code собрать прототип JSON-API по мотивам shot-scraper: выполнить JavaScript на странице и снять скриншот без Puppeteer и Playwright. Вышло около 150 строк TypeScript и ноль внешних зависимостей.
Три эндпоинта: /javascript, /screenshot и /healthz. На каждый запрос создаётся отдельная вкладка, параллельные вызовы поддерживаются. Результаты страницы и ошибки возвращаются JSON; снимки отдаёт в PNG, JPEG или WebP.
Что ещё в Bun 1.4
Первый стабильный релиз после переписывания с Zig на Rust. В release notes: +1517 тестов из Node.js-набора и 2900 исправлений. Idle CPU в 5 раз ниже, память до −35%, старт на Linux на 50% быстрее; плюс Bun.Image, Bun.markdown, Bun.cron() и параллельный bun run.
Сколько RAM под Chrome
Willison прогнал сервис в cgroups: для сложных страниц с полным Chrome нужен контейнер на 192–256 МБ. Эксперимент как раз про бюджет памяти такого микросервиса. Раньше без Puppeteer или Playwright его собирали заметно тяжелее.
Источник: A shot-scraper-style JSON API on Bun 1.4's new Bun.WebView.