Byla vydána platforma Deno 2.9 určená pro samostatné spouštění serverových a desktopových aplikací psaných v JavaScriptu a TypeScriptu s využitím 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 eliminovat koncepční chyby v architektuře Node.js. Pro zlepšení zabezpečení je framework V8 napsán v Rustu a pro neblokující zpracování požadavků se používá platforma Tokio. Kód projektu je distribuován pod licencí MIT. Sestavení jsou připravena pro... Linux, Windows и macOS.
Nová verze je pozoruhodná implementací experimentální sady nástrojů Deno Desktop, která umožňuje vytváření vlastních aplikací s grafickým uživatelským rozhraním (GUI) vytvořených pomocí webových technologií, podobných platformě Electron. Logika a rozhraní aplikace jsou definovány v JavaScriptu nebo TypeScriptu pomocí standardních webových frameworků a aplikace je spouštěna pomocí prohlížečového enginu. Aplikace je dodávána jako samostatný spustitelný soubor a nabízí uživatelské rozhraní podobné klasickým programům s GUI.
Deno Desktop nabízí backendy pro běh na dvou prohlížečových enginech: WebView operačního systému a CEF (Chromium Embedded Framework) integrovaném přímo do aplikace. Backend založený na WebView umožňuje menší velikosti spustitelných souborů tím, že běží nad prohlížečovým enginem WebView2 systému. Windows a WebKit v macOS и Linuxa backend CEF umožňuje dosáhnout stejného vykreslování rozhraní napříč platformami. Linux, macOS и Windows, ale za cenu výrazného zvětšení velikosti spustitelných souborů.
Velikost spustitelného souboru testovací aplikace se odhaduje na 40 MB při použití WebView a 150 MB při použití CEF. Pro srovnání, tato hodnota je 100 MB pro Electron, 61 MB pro Electrobun a 2–10 MB pro Tauri (Electron používá embedded CEF, zatímco Electrobun a Tauri používají systém WebView). Mechanismus pro sdílení společného CEF enginu napříč aplikacemi je ve vývoji, což zmenší velikost spustitelných souborů.
Deno Desktop je plně kompatibilní s Node.js, ekosystémem NPM a webovými frameworky, jako jsou Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start a Vite SSR. Pro přístup k nativním desktopovým API je k dispozici API. Můžete například ovládat velikost, polohu a viditelnost oken, vytvářet nabídky, připojovat vlastní obslužné rutiny, nastavovat ikony pro systémovou lištu a panely a zobrazovat nativní dialogová okna operačního systému. Webové aplikace lze vytvářet jako desktopové programy beze změny jejich kódu a použité webové frameworky lze automaticky detekovat a křížově kompilovat na jednom systému pro... Linux x64/arm64, Windows x64 a macOS x64/arm64. Pro Linux Balíčky lze generovat ve formátech AppImage, deb a rpm.
Na rozdíl od Electronu, Electrobunu a Tauri nepoužívá Deno Desktop model víceprocesového spouštění s IPC založeným na socketech. Místo toho používá vícevláknový model pro CEF nebo model založený na skupinách procesů pro WebView s komunikací mezi backendem a grafickým uživatelským rozhraním prostřednictvím vnitroprocesových kanálů. Má vestavěný mechanismus kontroly aktualizací a automatické instalace, který pro úsporu šířky pásma stahuje pouze data, která se změnila od předchozí verze (pomocí binárních oprav založených na bsdiff), a podporuje vrácení k předchozí verzi v případě selhání při spuštění nové verze.
Mezi další nové funkce v Deno 2.9 patří:
- Podpora pro přímé čtení souborů zámků v příkazu „deno install“ pro zjednodušení migrace do Deno z npm, pnpm, yarn a Bun.
- Podpora importu CSS modulů.
- Implementace kompatibility s platformou Node.js 26.
- Nové příkazy „deno link“, „deno unlink“ a „deno list“.
- Podpora rozhraní Web Locks API pro nastavení zámků u zdrojů.
- Povolte výchozí 24hodinové zpoždění (min-release-age=24h) před instalací nových verzí závislostí, abyste zabránili útokům na závislostí.
- Zkrácená doba spouštění (~2x), snížená spotřeba paměti (~2.2x) a zvýšená propustnost při práci s HTTP (~1.2x).

Zdroj: opennet.ru

