Deno platform 2.9 met ondersteuning voor Deno Desktop voor het maken van desktop-applicaties

De release van het Deno-platform 2.9 is gepubliceerd, dat is bedoeld voor het afzonderlijk uitvoeren van server- en desktopapplicaties in JavaScript en TypeScript met de V8-engine, die wordt gebruikt in Chromium-gebaseerde browsers. Het project wordt ontwikkeld door Ryan Dahl, de maker van Node.js, met als doel een veiliger omgeving te bieden en de conceptuele fouten in de architectuur van Node.js te corrigeren. Om de veiligheid te verhogen, is de wrapper rond de V8-engine geschreven in Rust, en voor het verwerken van verzoeken in niet-blokkerende modus wordt het Tokio-platform gebruikt. De projectcode wordt verspreid onder de MIT-licentie. Builds zijn beschikbaar voor Linux, Windows en macOS.

De nieuwe versie is opmerkelijk vanwege de implementatie van de experimentele toolkit Deno Desktop, die het mogelijk maakt om gebruikersapplicaties met een grafische interface te creƫren, gebouwd met webtechnologieƫn, vergelijkbaar met het Electron-platform. De logica en interface van de applicatie worden gedefinieerd in JavaScript of TypeScript met gebruik van gangbare webframeworks, en de werking wordt georganiseerd met behulp van de browser-engine. De applicatie wordt geleverd in de vorm van een zelfstandige uitvoerbare bestand en verschilt in interactie met de gebruiker niet van klassieke programma's met een grafische interface.

In Deno Desktop zijn er backends voor gebruik met twee browser-engines — de door het besturingssysteem geleverde WebView en de in de applicatie geĆÆntegreerde CEF (Chromium Embedded Framework). De backend op basis van WebView vermindert de grootte van uitvoerbare bestanden door gebruik te maken van de systeembrowser-engine WebView2 in Windows en WebKit in macOS en Linux, terwijl de CEF-backend de mogelijkheid biedt om een consistente weergave van de interface op de platforms Linux, macOS en Windows te bereiken, maar ten koste van een aanzienlijke vergroting van de uitvoerbare bestandsgrootte.

De grootte van het uitvoerbare bestand van de testapplicatie bij gebruik van WebView wordt geschat op 40 MB, en bij gebruik van CEF — 150 MB. Ter vergelijking, voor Electron bedraagt deze waarde 100 MB, voor Electrobun 61 MB, en voor Tauri 2-10 MB (in Electron wordt een ingebouwde CEF gebruikt, terwijl in Electrobun en Tauri de systeem WebView wordt toegepast). Er wordt gewerkt aan een mechanisme voor het delen van een gemeenschappelijke CEF-engine tussen verschillende applicaties, wat de mogelijkheid biedt om de grootte van de uitvoerbare bestanden te verlagen.

Deno Desktop biedt volledige compatibiliteit met Node.js, het NPM-ecosysteem en web-frameworks zoals Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start en Vite SSR. Het biedt een API voor toegang tot native desktop-API's; bijvoorbeeld, vanuit de applicatie kan de grootte, positie en zichtbaarheid van het venster worden beheerd, menu's worden gemaakt, eigen handlers worden toegevoegd, pictogrammen voor het systeemvak en panels worden ingesteld, en native OS-dialogen worden weergegeven. Web-applicaties kunnen worden samengesteld als desktop-applicaties zonder hun code te wijzigen, evenals automatische detectie van de gebruikte web-frameworks en cross-compilatie op ƩƩn systeem voor Linux x64/arm64, Windows x64 en macOS x64/arm64. Voor Linux kunnen pakketten in de formaten AppImage, deb en rpm worden gegenereerd.

In tegenstelling tot Electron, Electrobun en Tauri, gebruikt Deno Desktop niet een multiprocessmodel met IPC op basis van sockets, maar een multithreaded model voor CEF, of een model op basis van groepsprocessen voor WebView, waarbij interactie tussen de backend en de gebruikersinterface-code plaatsvindt via kanalen binnen ƩƩn proces. Er is een ingebouwd mechanisme voor het controleren en automatisch installeren van updates, dat alleen de gewijzigde data ten opzichte van de vorige versie downloadt (binair patches op basis van bsdiff worden toegepast) en dat terugdraaien naar een eerdere versie ondersteunt in het geval van een fout bij het starten van de nieuwe versie.

Onder andere nieuwtjes in Deno 2.9:

  • Ondersteuning in het commando 'deno install' voor directe toegang tot lock-bestanden om de migratie naar Deno vanuit npm, pnpm, yarn en Bun te vereenvoudigen.
  • Ondersteuning voor de invoer van CSS-modules.
  • Implementatie van compatibiliteit met Node.js 26.
  • Nieuwe commando's 'deno link', 'deno unlink' en 'deno list'.
  • Ondersteuning van de API Web Locks voor het instellen van vergrendelingen op bronnen.
  • Standaard inschakeling van een vertraging van 24 uur (min-release-age=24h) voordat nieuwe versies van afhankelijkheden worden geĆÆnstalleerd, ter bescherming tegen aanvallen via compromittering van afhankelijkheden.
  • Vermindering van de opstarttijd (~2x), verlaging van het geheugenverbruik (~2.2x) en verbetering van de doorvoer bij HTTP-verkeer (~1.2x).



    Bron: opennet.ru
Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster