Платформа Deno 2.9 c падтрымкай 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