Deno 2.9 platform med support for Deno Desktop til oprettelse af desktop-applikationer

Udgivelsen af Deno 2.9-platformen er offentliggjort, designet til isoleret kørsel af server- og desktop-applikationer skrevet i JavaScript og TypeScript ved brug af V8-motoren, der anvendes i Chromium-baserede browsere. Projektet ledes af Ryan Dahl, skaberen af Node.js, med det mål at tilbyde et mere sikkert miljø og rette op på de konceptuelle fejl i Node.js-arkitekturen. For at øge sikkerheden er det lag, der omslutter V8-motoren, skrevet i Rust, og for at håndtere anmodninger i ikke-blokerende mode anvendes Tokio-platformen. Projektets kode distribueres under MIT-licensen. Bygningerne er forberedt til Linux, Windows og macOS.

Den nye version er bemærkelsesværdig med introduktionen af det eksperimentelle værktøj Deno Desktop, der muliggør udvikling af brugerdefinerede applikationer med grafisk brugergrænseflade, bygget ved hjælp af webteknologier, svarende til Electron-platformen. Logikken og brugergrænsefladen for applikationen defineres i JavaScript eller TypeScript ved hjælp af standard web-rammer, mens driften organiseres med en browser-motor. Applikationen leveres som en selvstændig eksekverbar fil og adskiller sig ikke fra klassiske programmer med grafisk brugergrænseflade i interaktion med brugeren.

I Deno Desktop tilbydes der backend-løsninger til at arbejde over to browser-motorer — den, der leveres af operativsystemet WebView, og CEF (Chromium Embedded Framework), der integreres i applikationen. Backend’en baseret på WebView muliggør reduktion af størrelsen på eksekverbare filer ved at køre over det systembrowser-motor WebView2 i Windows og WebKit i macOS og Linux, mens CEF-backend’en gør det muligt at opnå ensartet rendering af brugergrænsefladen på Linux-, macOS- og Windows-platformene, dog med en betydelig stigning i størrelsen af de eksekverbare filer.

Størrelsen på den eksekverbare fil for testapplikationen ved brug af WebView vurderes til 40 MB, mens den ved brug af CEF er 150 MB. Til sammenligning er denne værdi for Electron 100 MB, Electrobun 61 MB, og Tauri mellem 2 og 10 MB (i Electron anvendes en indbygget CEF, mens Electrobun og Tauri bruger systemets WebView). Der udvikles en mekanisme til deling af en fælles CEF-motor mellem forskellige applikationer, som vil muliggøre reduktion af størrelsen på de eksekverbare filer.

Deno Desktop implementerer fuld kompatibilitet med Node.js, NPM-økosystemet og web-rammer som Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start og Vite SSR. Der tilbydes et API til adgang til native desktop-API'er, hvilket gør det muligt at styre størrelsen, positionen og synligheden af vinduer, oprette menuer, knytte egne håndterere, vise ikoner for systembakken og panelerne samt vise native OS-dialoger. Det er muligt at samle webapplikationer som desktop-programmer uden at ændre deres kode samt automatisk identificere de anvendte web-rammer og krydskompilere på en enkelt maskine for Linux x64/arm64, Windows x64 og macOS x64/arm64. For Linux kan der genereres pakker i formaterne AppImage, deb og rpm.

I modsætning til Electron anvendes der i Deno Desktop ikke en multiprocess-model med IPC baseret på sockets, men en multitrådet model for CEF eller en model baseret på procesgrupper for WebView, med interaktion mellem backend og brugergrænsefladekode gennem kanaler inden for en enkelt proces. Der er en indbygget mekanisme til kontrol og automatisk installation af opdateringer, som kun downloader de ændrede data i forhold til den tidligere version for at spare trafik (der anvendes binære patcher baseret på bsdiff) og som understøtter tilbageførsel til den tidligere version i tilfælde af fejl ved opstart af den nye version.

Blandt andre nyheder i Deno 2.9:

  • Understøttelse i den 'deno install' kommando til direkte læsning af lock-filer for at lette migrationen til Deno fra npm, pnpm, yarn og Bun.
  • Understøttelse af import af CSS-moduler.
  • Implementering af kompatibilitet med Node.js 26.
  • Nye kommandoer 'deno link', 'deno unlink' og 'deno list'.
  • Understøttelse af Web Locks API til etablering af låse på ressourcer.
  • Standardindstillingen er en 24-timers forsinkelse (min-release-age=24h) før installation af nye versioner af afhængigheder for at beskytte mod angreb gennem kompromittering af afhængigheder.
  • Halvering af opstartstiden (~2x), reduktion af hukommelsesforbruget (~2.2x) og forbedring af båndbredden under arbejde med HTTP (~1.2x).



    Kilde: opennet.ru
Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster