Платформа Deno 2.9 с поддръжка на Deno Desktop за създаване на десктоп приложения

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

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

В 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 и с уеб фреймворки като Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start и Vite SSR. Предоставя се API за достъп до нативни десктоп API, например, можете да управлявате размера, позицията и видимостта на прозореца, да създавате менюта, да прикачвате свои обработващи функции, да задавате икони за системната лента и панели, както и да извеждате родни за ОС диалози. Възможно е изграждане на уеб приложения под формата на десктоп програми без промяна на техния код, а също така автоматично определяне на използваните уеб фреймворкове и крос-компилация на една и съща система за 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