Spec-Zone.ru › Deno 2

Сравнение с другими инструментами

Доступно в Deno 2.9

deno desktop доступен начиная с Deno v2.9.0. Если у вас более ранняя версия, обновите Deno, чтобы использовать его.

deno desktop — один из нескольких способов создавать настольные приложения с помощью веб-технологий. Вот его сравнение с альтернативами.

Краткий обзор

Electron Electrobun Tauri Dioxus deno desktop
Язык JS/TS (Node.js) JS/TS (Bun) Rust + веб-интерфейс Rust JS/TS (Deno)
Веб-движок Встроенный Chromium Системный WebView Системный WebView Системный WebView Встроенный CEF или WebView
Единообразное отображение Да Нет Нет Нет Да (CEF)
Модель процессов Многопроцессная Многопроцессная Многопроцессная Однопроцессная Многопоточная (CEF) / группа процессов (WebView)
Бэкенд ↔ интерфейс IPC IPC IPC Нативный Rust Внутрипроцессные каналы
Размер приложения ~100 МБ+ ~61 МБ ~2–10 МБ ~5 МБ ~40 МБ / ~150 МБ (CEF)
Совместимость с npm / Node Да Да Нет Нет Да
Автоопределение фреймворков Нет Нет Нет Нет Да
HMR Нет Да Да (на базе Vite) Да (dx serve) Да
Встроенное автообновление Полный бинарный файл bsdiff Плагин Нет bsdiff
Встроенные установщики Да Нет Да Нет Частично (DMG, AppImage)
Кросс-компиляция Да (electron-builder) Нет (требуется целевая ОС) Нет (требуется целевая ОС) Нет Да (--target)
macOS / Windows / Linux Все три Все три Все три Все три Все три
iOS / Android Нет Нет Да Да Пока нет

Сильные стороны deno desktop

Поддержка фреймворков без настройки. deno desktop . в проекте Next.js, Astro или Fresh не требует ни адаптера, ни настроек: сервер для production работает в режиме release, а сервер для разработки запускается под управлением --hmr. Ни один другой инструмент не умеет автоматически определять фреймворки на таком уровне.

Кросс-компиляция на одной машине. Как и deno compile --target. Для сборки Tauri и Dioxus требуется целевая платформа локально (их инструментарий включает Rust, который должен компилироваться для целевой платформы). Electrobun работает на macOS, Windows и Linux, но собирает каждое приложение на соответствующей целевой платформе. Electron поддерживает кроссплатформенные сборки через electron-builder, но для каждой целевой платформы нужны Node и специальные инструменты для подписи.

Полная совместимость с Node и выбор бэкенда. Electron включает в комплект Chromium и Node, но занимает много места. Tauri и Dioxus компактны, но не поддерживают экосистему JS. deno desktop по умолчанию использует системный веб-представление (компактное, как Tauri), но при этом через Deno предоставляет полный уровень совместимости с Node, включая импорты npm: в обработчиках и bindings, а когда нужно единообразное отображение, можно встроить Chromium (CEF).

Внутрипроцессные привязки вместо IPC. Electron, Electrobun и Tauri используют IPC на основе сокетов для связи между бэкендом и интерфейсом. Вызовы сериализуются, пересекают границу процесса и десериализуются. deno desktop запускает среду выполнения Deno и бэкенд отображения в одном процессе, используя внутрипроцессные каналы для связи. Значения по-прежнему кодируются в JSON при вызове, но обмен данными между процессами не требуется.

Встроенное автообновление с бинарными патчами. Electron поставляет полные бинарные файлы. Плагин обновления Tauri загружает полные сборки. Electrobun и deno desktop используют патчи bsdiff, но deno desktop интегрирует процесс обновления со средой выполнения: отдельный бинарный файл обновления не нужен, автоматический откат и опрос манифеста доступны через единый API.

Сильные стороны других инструментов

Electron: экосистема. Многолетний опыт создания инструментов, упаковки и подписания приложений. Его используют все основные редакторы и приложения для чатов. Если вам нужны зрелые экосистемы плагинов (Spectron, electron-builder, абстракции autoUpdater), в Electron они есть.

Tauri: компактность и мобильные платформы. Бинарные файлы Tauri на порядок меньше, чем у deno desktop (или Electron), а Tauri 2 поддерживает iOS и Android. Если главное — размер или мобильные платформы, Tauri выигрывает.

Electrobun: быстрая разработка в экосистеме Bun. Electrobun отличается высокой скоростью запуска и поддерживает HMR, а также официально работает на macOS, Windows и Linux (Ubuntu). Если вы работаете в экосистеме Bun, на него стоит обратить внимание.

Dioxus: только Rust. Среда выполнения JS не используется вовсе. Если вы пишете всё на Rust и хотите иметь единую кодовую базу, Dioxus — хороший выбор.

Чего пока нет в deno desktop

Об этом рассказывается на соответствующих страницах этого раздела, но полезно перечислить всё в одном месте:

  • Нотаризация за один шаг. Пакеты macOS подписываются кодовой подписью (по умолчанию — специальной временной подписью или с использованием настроенной идентификационной записи Developer ID), но нотаризация пока выполняется отдельным шагом notarytool. См. раздел Распространение.
  • Установочные пакеты Windows MSI и Linux .deb / .rpm.
  • Автообновление в Windows. Бинарное автообновление с помощью патчей доступно для macOS и Linux; Windows пока не поддерживается.
  • Целевые платформы iOS / Android.
  • Нативные API буфера обмена и защищённого хранилища (пока они не появятся, используйте API Web Clipboard со стороны WebView). Нативные API уведомлений и системного трея / панели Dock доступны.
  • Разрешения среды выполнения для настольных приложений (запрос разрешения при каждом обращении к файловой системе или сети, то есть применение системы разрешений Deno для изоляции настольных приложений).
  • Общая среда выполнения CEF для приложений. Сейчас каждое приложение включает собственную копию CEF. Управляемая общая среда выполнения позволила бы уменьшить размер бинарных файлов до нескольких МБ на приложение. Эта возможность запланирована.

Когда выбирать deno desktop

  • Ваша кодовая база написана на JavaScript / TypeScript, и вы не хотите писать на Rust.
  • Вам нужно единообразное отображение на разных платформах, и вас устраивает размер бинарного файла, связанный со встраиванием Chromium.
  • У вас уже есть веб-приложение на Next.js / Astro / Fresh и т. п., и вы хотите создать настольную версию без изменений кода.
  • Вам нужна кросс-компиляция на одной машине.
  • Вам нужна полная совместимость с Node (пакеты npm, нативные модули) в коде бэкенда.
  • Вы хотите, чтобы автообновление было встроено, а не добавлено поверх.

Когда выбрать что-то другое

  • Tauri, если размер бинарного файла критически важен, вам не нужен npm и вы хотите поддерживать мобильные платформы.
  • Electron, если существующие инструменты, подпись и CI вашей команды уже рассчитаны на Electron.
  • Dioxus, если вы пишете всё на Rust.
  • Electrobun, если хотите работать в экосистеме Bun.

Последнее обновление: 25 июня 2026 г.

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/desktop/comparison

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API