Platforma Deno 2.9 s podporou Deno Desktop pro vytváření desktopových aplikací

Byla vydána verze platformy Deno 2.9, určená pro izolované provádění serverových a desktopových aplikací v jazycích JavaScript a TypeScript pomocí enginu V8, používaného v prohlížečích založených na Chromiu. Projekt vyvíjí Ryan Dahl, tvůrce Node.js, s cílem poskytnout bezpečnější prostředí a odstranit koncepční chyby, které byly učiněny v architektuře Node.js. Pro zvýšení bezpečnosti je obal kolem enginu V8 napsán v jazyce Rust a pro zpracování požadavků se používá platforma Tokio. Kód projektu je distribuován pod licencí MIT. Verze jsou připraveny pro Linux, Windows a macOS.

Nová verze se vyznačuje realizací experimentálního nástroje Deno Desktop, který umožňuje vytvářet uživatelské aplikace s grafickým rozhraním postavené pomocí webových technologií, podobně jako platforma Electron. Logika a rozhraní aplikace jsou definovány v jazyce JavaScript nebo TypeScript za použití standardních webových frameworků, a její fungování je organizováno pomocí prohlížečového enginu. Aplikace se dodává ve formě samostatného spustitelného souboru a z pohledu interakce s uživateli se neliší od klasických programů s grafickým rozhraním.

V Deno Desktop jsou nabízeny backendy pro práci nad dvěma prohlížečovými enginy — poskytovaným operačním systémem WebView a integrovaným v aplikaci CEF (Chromium Embedded Framework). Backend založený na WebView umožňuje snížit velikost spustitelných souborů díky provozu nad systémovým prohlížečovým enginem WebView2 ve Windows a WebKit v macOS a Linuxu, zatímco backend CEF umožňuje dosáhnout shodného vykreslování rozhraní na platformách Linux, macOS a Windows, avšak na úkor výrazného zvýšení velikosti spustitelných souborů.

Velikost spustitelného souboru testovací aplikace při použití WebView je odhadována na 40 MB, zatímco při použití CEF — 150 MB. Pro srovnání, pro Electron tento údaj činí 100 MB, Electrobun — 61 MB, a Tauri — 2-10 MB (v Electron se používá integrovaný CEF, zatímco v Electrobun a Tauri systémový WebView). Je v přípravě mechanismus pro sdílení společného enginu CEF mezi různými aplikacemi, který umožní snížit velikost spustitelných souborů.

V Deno Desktop je zajištěna plná kompatibilita s Node.js, ekosystémem NPM a webovými rámci jako Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start a Vite SSR. Je poskytováno API pro přístup k nativním desktopovým API, například lze z programu řídit velikost, pozici a viditelnost okna, vytvářet nabídky, připojovat vlastní obslužné rutiny, nastavovat ikony pro systémovou lištu a panely, zobrazovat natívní dialogy pro OS. Možná je kompilace webových aplikací do formy desktopových programů bez změny jejich kódu a také automatická detekce používaných webových rámců a křížová kompilace na jednom systému pro Linux x64/arm64, Windows x64 a macOS x64/arm64. Pro Linux mohou být generovány balíčky ve formátu AppImage, deb a rpm.

Na rozdíl od Electron, Electrobun a Tauri, Deno Desktop nepoužívá víceprocesový model provádění s IPC na základě socketů, ale vícevláknový model pro CEF nebo model založený na skupinách procesů pro WebView s interakcí mezi backendem a kódem grafického rozhraní prostřednictvím kanálů uvnitř jednoho procesu. Existuje vestavěný mechanismus kontroly a automatické instalace aktualizací, který za účelem úspory dat stahuje pouze změněná data vůči předchozí verzi (používají se binární patch na základě bsdiff) a podporuje návrat k předchozí verzi v případě selhání při spuštění nové verze.

Mezi další novinky Deno 2.9:

  • Podpora pro příkaz ‚deno install‘ pro přímé čtení lock souborů za účelem usnadnění migrace na Deno z npm, pnpm, yarn a Bun.
  • Podpora pro import CSS modulů.
  • Implementace kompatibility s platformou Node.js 26.
  • Nové příkazy ‚deno link‘, ‚deno unlink‘ a ‚deno list‘.
  • Podpora API Web Locks pro nastavení zámků na zdroje.
  • Vyjmutí ve výchozím nastavení 24 hodinového zpoždění (min-release-age=24h) před instalací nových verzí závislostí za účelem ochrany před útoky na základě kompromitace závislostí.
  • Zkrácení doby spuštění (~2x), snížení spotřeby paměti (~2.2x) a zvýšení průchodnosti při práci s HTTP (~1.2x).



    Zdroj: opennet.ru
Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster