Обзор Electrobun: кроссплатформенный фреймворк на базе Bun с бандлом в 4 раза меньше Electron

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 — всё подходит.

Как устроена разработка приложения

Инициализация проекта предоставляет готовые шаблоны: базовое приложение для заметок, мультиоконное приложение, трей-приложение. Для старта с нуля достаточно:

  1. Создать конфигурационный файл Electrobun с указанием имени приложения, идентификатора и точки входа Bun.
  2. Создать файл index.ts, который инстанциирует класс BrowserWindow с заголовком и URL.
  3. Добавить объект views в конфиг, чтобы корректно указать путь к собранным фронтенд-файлам.
  4. При необходимости убрать заголовочную панель и добавить кастомное меню приложения через 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.

Видео

Фото аватара

Иван Барабин

Специализация: разработка сайтов, SEO & WordPress
Опыт: более 10 лет

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *