แพลตฟอร์ม Deno 2.9 พร้อมการสนับสนุน Deno Desktop สำหรับการสร้างแอปพลิเคชันบนเดสก์ท็อป

Опубликован выпуск платформы Deno 2.9, предназначенной для обособленного выполнения серверных и настольных приложений на языках JavaScript и TypeScript с использованием движка V8, применяемого в браузерах на основе Chromium. Проект развивает Райан Даль (Ryan Dahl), создатель Node.js, с целью предоставления более защищённого окружения и устранения концептуальных ошибок, допущенных в архитектуре Node.js. Для повышения безопасности обвязка вокруг движка V8 написана на языке Rust, а для обработки запросов в неблокирующем режиме применяется платформа Tokio. Код проекта распространяется под лицензией MIT. Сборки подготовлены для Linux, Windows и macOS.

Новая версия примечательна реализацией экспериментального инструментария Deno Desktop, позволяющего создавать пользовательские приложения с графическим интерфейсом, построенные с использованием web-технологий, по аналогии с платформой Electron. Логика и интерфейс приложения определяются на языке JavaScript или TypeScript с использованием типовых web-фреймворков, а работа организуется с использованием браузерного движка. Приложение поставляется в форме самодостаточного исполняемого файла и по взаимодействию с пользователем не отличается от классических программ с графическим интерфейсом.

В Deno Desktop предлагаются бэкенды для работы поверх двух браузерных движков — предоставляемого операционной системой WebView и интегрируемого в приложение CEF (Chromium Embedded Framework). Бэкенд на базе WebView позволяет уменьшить размер исполняемых файлов за счёт работы поверх системного браузерного движка WebView2 в Windows и WebKit в macOS и Linux, а бэкенд CEF даёт возможность добиться одинаковой отрисовки интерфейса на платформах Linux, macOS и Windows, но ценой существенного увеличения размера исполняемых файлов.

Размер исполняемого файла тестового приложения при использовании WebView оценивается в 40 МБ, а при использовании CEF — 150 МБ. Для сравнения для Electron этот показатель составляет 100 МБ, Electrobun — 61 МБ, а Tauri — 2-10 МБ (в Electron применяется встраиваемый в приложение CEF, а в Electrobun и Tauri системный WebView). В разработке находится механизм совместного использования общего движка CEF в разных приложениях, который даст возможность снизить размер исполняемых файлов.

В Deno Desktop реализована полная совместимость с Node.js, экосистемой NPM и такими web-фреймворками, как Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start и Vite SSR. Предоставляется API для доступа к нативным десктопным API, например, можно из программы управлять размером, позицией и видимостью окна, создавать меню, прикреплять свои обработчики, выставлять пиктограммы для системного лотка и панелей, выводить родные для ОС диалоги. Возможна сборка web-приложений в форме десктоп-программ без изменения их кода, а также автоматическое определение используемых web-фреймворков и кросс-компиляция на одной системе для Linux x64/arm64, Windows x64 และ macOS x64/arm64. Для Linux могут генерироваться пакеты в форматах AppImage, deb и rpm.

В отличие от Electron, Electrobun и Tauri в Deno Desktop применяется не многопроцессная модель выполнения с IPC на базе сокетов, а многопоточная модель для CEF или модель на основе групп процессов для WebView с взаимодействием между бэкендом и кодом графического интерфейса через каналы внутри одного процесса. Имеется встроенный механизм проверки и автоматической установки обновлений, для экономии трафика загружающий только изменившиеся относительно прошлой версии данные (применяются бинарные патчи на базе bsdiff) и поддерживающий откат на прошлую версию в случае сбоя при запуске новой версии.

Среди других новшеств Deno 2.9:

  • Поддержка в команде «deno install» прямого чтения lock-файлов для упрощения миграции на Deno с npm, pnpm, yarn и Bun.
  • Поддержка импорта CSS-модулей.
  • Реализация совместимости с платформой Node.js 26.
  • Новые команды «deno link», «deno unlink» и «deno list».
  • Поддержка API Web Locks для выставления блокировок на ресурсы.
  • Включение по умолчанию 24-часовой задержки (min-release-age=24h) перед установкой новых версий зависимостей для защиты от атак через компрометацию зависимостей.
  • Сокращение времени запуска (~2x), снижение потребления памяти (~2.2x) и повышение пропускной способности при работе с HTTP (~1.2x).



    ที่มา: opennet.ru
ซื้อโฮสติ้งที่เชื่อถือได้สำหรับไซต์ที่มีการป้องกัน DDoS เซิร์ฟเวอร์ VPS VDS 🔥 ซื้อบริการเว็บโฮสติ้งที่เชื่อถือได้ พร้อมระบบป้องกัน DDoS และเซิร์ฟเวอร์ VPS/VDS | ProHoster