Platforma Deno 2.9 s podporou Deno Desktop pre tvorbu desktopových aplikácií

Bolestná verzia platformy Deno 2.9 bola zverejnená na izolované spúšťanie serverových a desktopových aplikácií v jazykoch JavaScript a TypeScript s použitím enginu V8, ktorý sa používa v prehliadačoch na základe Chromium. Projekt rozvíja Ryan Dahl, zakladateľ Node.js, s cieľom poskytnúť bezpečnejšie prostredie a odstrániť koncepčné chyby, ktoré sa vyskytli v architektúre Node.js. Pre zvýšenie bezpečnosti je obal okolo enginu V8 napísaný v jazyku Rust a pre spracovanie požiadaviek v nezablokovanom režime sa používa platforma Tokio. Kód projektu je šírený pod licenciou MIT. Zostavy sú pripravené pre Linux, Windows a macOS.

Nová verzia sa vyznačuje implementáciou experimentálneho nástroja Deno Desktop, ktorý umožňuje vytvárať používateľské aplikácie s grafickým rozhraním postavené na webových technológiách, podobne ako platforma Electron. Logika a rozhranie aplikácie sú definované v jazyku JavaScript alebo TypeScript s použitím štandardných webových rámcov a práca sa organizuje s použitím prehliadačového enginu. Aplikácia sa dodáva vo forme samostatného spustiteľného súboru a v interakcii s používateľom sa nelíši od klasických programov s grafickým rozhraním.

V Deno Desktop sú k dispozícii backendy na prácu nad dvoma prehliadačovými enginmi – poskytovaným operačným systémom WebView a integrovaným do aplikácie CEF (Chromium Embedded Framework). Backend založený na WebView umožňuje zmenšiť veľkosť spustiteľných súborov z dôvodu práce na základe systémového prehliadačového enginu WebView2 vo Windows a WebKit v macOS a Linux, zatiaľ čo backend CEF umožňuje dosiahnuť rovnaké vykreslenie rozhrania na platformách Linux, macOS a Windows, ale za cenu významného zvýšenia veľkosti spustiteľných súborov.

Veľkosť spustiteľného súboru testovacej aplikácie pri použití WebView sa odhaduje na 40 MB, zatiaľ čo pri použití CEF na 150 MB. Pre porovnanie, pre Electron je tento údaj 100 MB, Electrobun – 61 MB, a Tauri – 2-10 MB (v Electron sa používa integrovaný v aplikácii CEF, a v Electrobun a Tauri systémový WebView). V príprave je mechanizmus zdieľania spoločného enginu CEF v rôznych aplikáciách, ktorý umožní znížiť veľkosť spustiteľných súborov.

V Deno Desktop je plná kompatibilita s Node.js, ekosystémom NPM a webovými rámcami ako Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start a Vite SSR. Poskytuje sa API na prístup k natívnym desktopovým API, napríklad je možné z programu ovládať veľkosť, pozíciu a viditeľnosť okna, vytvárať menu, pripojovať vlastné obslužné programy, nastavovať ikony pre systémový panel a panely, vyvolávať natívne dialógy pre OS. Možná je kompilácia webových aplikácií vo forme desktopových programov bez zmeny ich kódu, ako aj automatické zistenie používaných webových rámcov a krížová kompilácia na jednom systéme pre Linux x64/arm64, Windows x64 a macOS x64/arm64. Pre Linux je možné generovať balíky vo formátoch AppImage, deb a rpm.

Na rozdiel od Electron, Electrobun a Tauri, v Deno Desktop sa používa nie viacprocesný model s IPC na báze soketov, ale viacvláknový model pre CEF alebo model na báze skupín procesov pre WebView s interakciou medzi backendom a kódom grafického rozhrania prostredníctvom kanálov v rámci jedného procesu. Existuje vstavaný mechanizmus kontroly a automatickej inštalácie aktualizácií, ktorý na úsporu dát sťahuje iba zmenené dáta vo vzťahu k predchádzajúcej verzii (aplikujú sa binárne záplaty na báze bsdiff) a podporuje návrat na predchádzajúcu verziu v prípade zlyhania pri spustení novej verzie.

Medzi ďalšími novinkami Deno 2.9:

  • Podpora pri príkaze „deno install“ priameho čítania lock súborov pre zjednodušenie migrácie na Deno z npm, pnpm, yarn a Bun.
  • Podpora importu CSS modulov.
  • Implementácia kompatibility s platformou Node.js 26.
  • Nové príkazy „deno link“, „deno unlink“ a „deno list“.
  • Podpora API Web Locks pre nastavovanie blokád na zdroje.
  • Zavedenie predvolenej 24-hodinovej oneskorenia (min-release-age=24h) pred inštaláciou nových verzií závislostí na ochranu proti útokom cez kompromitované závislosti.
  • Zníženie času spustenia (~2x), zníženie spotreby pamäte (~2.2x) a zvýšenie priepustnosti pri práci s HTTP (~1.2x).



    Zdroj: opennet.ru
Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster