Electrobun — новый кроссплатформенный фреймворк для десктопных приложений на базе Bun, который обещает нативную производительность, минимальный размер бандла и полную поддержку веб-технологий без необходимости писать код на Rust. В этом обзоре разбираем, как он работает, чем отличается от Electron и стоит ли на него смотреть прямо сейчас.
Что такое Electrobun и зачем он появился
После того как команда Bun была приобретена Anthropic, направление на создание полноценной альтернативы Electron фактически отошло на второй план — фокус сместился на CLI и исполняемые файлы. Тогда разработчик под ником Yo из Blackboard создал Electrobun — фреймворк, который максимально близко реализует идею «Electron на Bun».
Уже сейчас автор собрал с помощью Electrobun несколько реальных проектов:
- Гибридный браузер, терминал и редактор кода — Collab
- Приложение для синтеза речи на базе Quen
- Демо запуска Doom прямо в Electrobun-приложении через Web GPU
Ключевые преимущества перед Electron
- Значительно меньший размер бандла: приложение Hello World на Electrobun весит ~65 МБ (DMG ~17 МБ), тогда как аналог на Electron — 271 МБ, то есть более чем в 4 раза больше.
- Нативная производительность: используются системные нативные веб-вью (WebKit на macOS, Edge WebView2 на Windows, WebKit GTK на Linux) и собственные C++ обёртки.
- Нет Node.js и V8: всё работает через Bun и его runtime.
- Не требует знания Rust: в отличие от Tauri, достаточно знать JavaScript/TypeScript.
- Поддержка любых JS-фреймворков: React, Vue, Svelte, SolidJS, Angular — всё подходит.
Как устроена разработка приложения
Инициализация проекта предоставляет готовые шаблоны: базовое приложение для заметок, мультиоконное приложение, трей-приложение. Для старта с нуля достаточно:
- Создать конфигурационный файл Electrobun с указанием имени приложения, идентификатора и точки входа Bun.
- Создать файл
index.ts, который инстанциирует классBrowserWindowс заголовком и URL. - Добавить объект
viewsв конфиг, чтобы корректно указать путь к собранным фронтенд-файлам. - При необходимости убрать заголовочную панель и добавить кастомное меню приложения через
applicationMenu.
Дополнительные технические возможности
- Изолированные процессы: архитектура out-of-process iframe — каждый веб-вью работает в своём изолированном процессе.
- Typed RPC для типобезопасной межпроцессной коммуникации.
- Zstd-сжатие и self-extracting wrapper для уменьшения размера при первоначальной загрузке.
- Поддержка Chromium Embedded Framework (CEF) для кроссплатформенной консистентности рендеринга (хотя это увеличивает размер и нивелирует преимущество перед Electron).
- Code signing — поддержка подписи приложений.
Ограничения и текущие проблемы
Electrobun — молодой проект (первый коммит датируется февралём), поэтому ряд шероховатостей неизбежен:
- Неполная документация, особенно в части конфигурации entry-файла.
- Мерцание страницы при полном перезапуске (full page reload).
- Инструменты инспектора могут нарушать layout приложения.
- Использование нативных веб-вью требует учёта особенностей каждой платформы — не все браузерные функции одинаково поддерживаются.
Итог: стоит ли смотреть на Electrobun
Electrobun — наиболее перспективная на сегодня альтернатива Electron для разработчиков, работающих с экосистемой Bun. Проект активно развивается, уже демонстрирует впечатляющее преимущество по размеру бандла и нативной производительности. Учитывая, что команда Bun после перехода под крыло Anthropic вряд ли вернётся к этой теме, Electrobun остаётся лучшим шансом получить полноценный кроссплатформенный десктопный инструмент на базе Bun.