Het Deno 2.9-platform met Deno Desktop-ondersteuning voor het maken van desktopapplicaties.

Deno 2.9, een platform ontworpen voor de zelfstandige uitvoering van server-side en desktopapplicaties geschreven in JavaScript en TypeScript met behulp van de V8-engine, die gebruikt wordt in op Chromium gebaseerde browsers, is uitgebracht. Het project wordt ontwikkeld door Ryan Dahl, de maker van Node.js, met als doel een veiligere omgeving te bieden en conceptuele fouten in de Node.js-architectuur te elimineren. Om de beveiliging te verbeteren, is het V8-framework geschreven in Rust en wordt het Tokio-platform gebruikt voor niet-blokkerende verwerking van verzoeken. De projectcode wordt gedistribueerd onder de MIT-licentie. Builds zijn voorbereid voor Linux, Windows и macOS.

De nieuwe versie onderscheidt zich door de implementatie van de experimentele Deno Desktop-toolkit, waarmee aangepaste GUI-applicaties kunnen worden ontwikkeld met behulp van webtechnologieën, vergelijkbaar met het Electron-platform. De applicatielogica en -interface worden gedefinieerd in JavaScript of TypeScript met behulp van standaard webframeworks, en de applicatie wordt uitgevoerd door een browsergebaseerde engine. De applicatie wordt geleverd als een zelfstandig uitvoerbaar bestand en biedt een gebruikersinterface die lijkt op die van klassieke GUI-programma's.

Deno Desktop biedt backends voor gebruik met twee browser-engines: WebView van het besturingssysteem en het in de applicatie geïntegreerde CEF (Chromium Embedded Framework). De op WebView gebaseerde backend zorgt voor kleinere uitvoerbare bestanden doordat deze bovenop de WebView2-browser-engine van het systeem draait. Windows en WebKit in macOS и LinuxEn de CEF-backend maakt het mogelijk om dezelfde interfaceweergave op verschillende platforms te realiseren. Linux, macOS и Windows, maar wel ten koste van een aanzienlijke toename van de omvang van de uitvoerbare bestanden.

De geschatte grootte van het uitvoerbare bestand van de testapplicatie is 40 MB met WebView en 150 MB met CEF. Ter vergelijking: dit is 100 MB voor Electron, 61 MB voor Electrobun en 2-10 MB voor Tauri (Electron gebruikt ingebouwde CEF, terwijl Electrobun en Tauri de systeem-WebView gebruiken). Er wordt gewerkt aan een mechanisme om een ​​gemeenschappelijke CEF-engine te delen tussen applicaties, wat de grootte van de uitvoerbare bestanden zal verkleinen.

Deno Desktop is volledig compatibel met Node.js, het NPM-ecosysteem en webframeworks zoals Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start en Vite SSR. Er is een API beschikbaar voor toegang tot native desktop-API's. Zo kunt u bijvoorbeeld de grootte, positie en zichtbaarheid van vensters beheren, menu's maken, aangepaste handlers toevoegen, pictogrammen instellen voor het systeemvak en panelen, en native OS-dialoogvensters weergeven. Webapplicaties kunnen als desktopprogramma's worden gebouwd zonder de code te wijzigen, en de gebruikte webframeworks kunnen automatisch worden gedetecteerd en gecompileerd op één systeem. Linux x64/arm64, Windows x64 en macOS x64/arm64. Voor Linux Pakketten kunnen worden gegenereerd in de formaten AppImage, deb en rpm.

In tegenstelling tot Electron, Electrobun en Tauri gebruikt Deno Desktop geen multi-process uitvoeringsmodel met socket-gebaseerde IPC. In plaats daarvan gebruikt het een multi-threaded model voor CEF of een op procesgroepen gebaseerd model voor WebView, waarbij de communicatie tussen de backend en de GUI-code verloopt via interne kanalen. Het beschikt over een ingebouwd mechanisme voor het controleren op updates en automatische installatie. Om bandbreedte te besparen, worden alleen de gegevens gedownload die sinds de vorige versie zijn gewijzigd (met behulp van op bsdiff gebaseerde binaire patches). Bovendien is het mogelijk om terug te keren naar de vorige versie als het opstarten van een nieuwe versie mislukt.

Andere nieuwe functies in Deno 2.9 zijn onder andere:

  • Ondersteuning voor het direct lezen van lock-bestanden in het "deno install"-commando om de migratie naar Deno vanuit npm, pnpm, yarn en Bun te vereenvoudigen.
  • Ondersteuning voor het importeren van CSS-modules.
  • Implementatie van compatibiliteit met het Node.js 26-platform.
  • Nieuwe commando's: "deno link", "deno unlink" en "deno list".
  • Ondersteuning voor de Web Locks API voor het instellen van vergrendelingen op resources.
  • Schakel een standaardvertraging van 24 uur in (min-release-age=24h) voordat nieuwe versies van afhankelijkheden worden geïnstalleerd om te beschermen tegen aanvallen waarbij afhankelijkheden worden gecompromitteerd.
  • Kortere opstarttijd (~2x), lager geheugenverbruik (~2.2x) en hogere doorvoer bij gebruik van HTTP (~1.2x).



    Bron: opennet.ru
Koop betrouwbare hosting voor sites met DDoS-bescherming, VPS VDS-servers 🔥 Koop betrouwbare websitehosting met DDoS-bescherming, VPS- en VDS-servers | ProHoster