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

Издана версия платформы Deno 2.9, предназначенная для изолированного выполнения серверных и десктопных приложений на языках JavaScript и TypeScript с использованием движка V8, применяемого в браузерах на основе Chromium. Проект курирует Райан Даль, создатель 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, но за это цена — значительное увеличение размера исполняемых файлов.

Velikost izvršne datoteke testne aplikacije pri uporabi WebView je ocenjena na 40 MB, medtem ko pri uporabi CEF znaša 150 MB. Za primerjavo, ta številka za Electron znaša 100 MB, Electrobun 61 MB, medtem ko Tauri znaša od 2 do 10 MB (v Electronu se uporablja integrirani CEF, medtem ko v Electrobun in Tauri sistemski WebView). V razvoju je mehanizem za skupno rabo skupnega CEF motorja v različnih aplikacijah, kar bo omogočilo zmanjšanje velikosti izvršnih datotek.

Deno Desktop podpira popolno združljivost z Node.js, ekosistemom NPM in spletnimi ogrodji, kot so Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start in Vite SSR. Na voljo je API za dostop do naravnih namiznih API-jev, na primer je mogoče iz programa upravljati z velikostjo, položajem in vidnostjo okna, ustvariti meni, priložiti lastne obdelovalce, nastaviti ikone za sistemsko obvestilno območje in plošče ter prikazati naravne za OS pogovorne okna. Možna je gradnja spletnih aplikacij v obliki namiznih programov brez spreminjanja njihove kode, prav tako pa je omogočeno samodejno odkrivanje uporabljenih spletnih ogrodij in križna kompilacija na enem sistemu za Linux x64/arm64, Windows x64 in macOS x64/arm64. Za Linux je mogoče ustvariti pakete v formatih AppImage, deb in rpm.

Za razliko od Electrona, Electrobun in Tauri, Deno Desktop ne uporablja večprocesnega modela izvajanja z IPC na osnovi soketov, temveč večnitni model za CEF ali model na osnovi skupin procesov za WebView z interakcijo med backendom in kodo grafičnega vmesnika preko kanalov znotraj enega procesa. Ima vgrajen mehanizem za preverjanje in samodejno namestitev posodobitev, ki za prihranek podatkov prenaša samo spremenjene podatke glede na prejšnjo različico (uporabljajo se binarni popravki na osnovi bsdiff) in podpira vračanje na prejšnjo različico v primeru napake pri zagonu nove verzije.

Med drugimi novostmi Deno 2.9:

  • Podpora v ukazu „deno install“ za neposredno branje lock-datotek, da se olajša migracija na Deno z npm, pnpm, yarn in Bun.
  • Podpora za uvoz CSS-modulov.
  • Uresničitev združljivosti s platformo Node.js 26.
  • Novi ukazi „deno link“, „deno unlink“ in „deno list“.
  • Podpora za API Web Locks za postavitev zaklepanja na vire.
  • Privzeto vključitev 24-urnega zakasnitve (min-release-age=24h) pred namestitvijo novih različic odvisnosti za zaščito pred napadi prek kompromitacije odvisnosti.
  • Zmanjšanje časa zagona (~2x), zmanjšanje porabe pomnilnika (~2.2x) in povečanje prepustnosti pri delu s HTTP (~1.2x).



    Izvor: opennet.ru
Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster