Бэкенды
deno desktop доступен начиная с Deno v2.9.0. Если вы используете более раннюю версию, обновите Deno, чтобы использовать его.
deno desktop запускает ваше приложение поверх одного из нескольких движков веб-рендеринга. --backend (или поле desktop.backend в deno.json) выбирает движок, встраиваемый в приложение. Если вы не выберете движок, deno desktop использует бэкенд WebView.
Доступные бэкенды
CEF
deno desktop --backend cef main.ts
Встроенный Chromium Embedded Framework. Тот же движок, который используется в Chrome, Electron и Slack. Фреймворк располагается в каталоге .app / приложения под Contents/Frameworks/.
- Одинаковый рендеринг в macOS, Windows и Linux.
- Полная поддержка веб-платформы, включая современные CSS, модули ES, WebGPU и WebRTC.
- Наибольший размер бинарного файла (около 150 МБ только для фреймворка).
- Поддерживаются все возможности Deno для настольных приложений (DevTools, autoUpdate, панель задач, dock).
Выбирайте CEF, если важен одинаковый рендеринг на разных платформах или если нужна функция, доступная только в Chromium (например, WebGPU в Linux).
WebView (по умолчанию)
deno desktop --backend webview main.ts
Собственный веб-просмотрщик операционной системы: WKWebView в macOS, WebView2 в Windows, WebKitGTK в Linux.
- Меньший размер приложения (только ваш код и прослойка бэкенда).
- Рендеринг и поддержка функций различаются в зависимости от платформы и версии ОС.
- Некоторые веб-функции могут отсутствовать или работать иначе (варианты Web Audio, доступность WebGPU и т. д.).
- DevTools недоступен (на данный момент унифицированный мультиплексор DevTools поддерживает только CEF).
Выбирайте WebView, если размер бинарного файла имеет первостепенное значение, а интерфейс использует только широко поддерживаемые веб-функции.
Raw
{ "desktop": { "backend": "raw" } }
Без веб-движка. Предоставляет управление окнами, обработку событий ввода, буфер обмена и интерфейс нативного API, но не включает веб-просмотрщик, автоматическую привязку Deno.serve() и прокси bindings.<name>().
Подходит для приложений, которые самостоятельно отрисовывают интерфейс (WebGPU, Skia, собственный рендеринг), а также в качестве основы для настольных программ, не использующих веб-технологии. Бэкенд raw выбирается с помощью поля desktop.backend в deno.json; флаг --backend принимает только значения cef и webview. Полный пример отрисовки в окне с этим бэкендом см. в разделе Рендеринг с помощью WebGPU.
Выбор бэкенда
| Потребность | Оптимальный вариант |
|---|---|
| Одинаковый рендеринг везде | cef |
| Минимально возможный размер бинарного файла | webview |
| WebGPU / новейшие веб-API на всех платформах | cef |
| Собственный 2D/3D-рендеринг, без HTML | raw |
| Внутреннее приложение для macOS, версия ОС контролируется вами | webview |
Переключение между бэкендами
Бэкенды взаимозаменяемы, за исключением бэкенда raw: один и тот же код приложения (окна, привязки, события, навигация, выполнение JS) работает в CEF и WebView без изменений.
Чтобы переключить бэкенд, измените конфигурацию или передайте флаг:
{ "desktop": { "backend": "webview" } }
deno desktop --backend webview main.ts
В бэкенде raw нет веб-просмотрщика, поэтому при его использовании недоступны API, взаимодействующие с веб-контентом (навигация, привязки, executeJs и т. д.).
Получение бэкендов
Вам не нужно самостоятельно собирать бэкенд рендеринга. CLI Deno автоматически загружает предварительно собранные бинарные файлы бэкендов. Контрольные суммы загрузок проверяются, а файлы кэшируются в <deno_dir>/.
При первой сборке для нового бэкенда / целевой платформы загружается архив (для CEF — размером в несколько сотен мегабайт). При последующих сборках используется кэш.
Кросс-компиляция
--target и --all-targets работают с любым бэкендом. CLI загружает предварительно собранный архив бэкенда, соответствующий целевому триплету; локальная инструментальная цепочка движка не требуется. См. раздел Распространение.
Последнее обновление:
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/desktop/backends