IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Deno Desktop convertit les applications web en binaires natifs, en ciblant votre référentiel web existant, tel que Next.js, Astro ou SvelteKit, pour le compiler en un exécutable natif léger et autonome

Le , par Anthony

260PARTAGES

6  0 
Deno Desktop convertit les applications web en binaires natifs, en ciblant votre référentiel web existant, tel que Next.js, Astro, Remix ou SvelteKit, pour le compiler en un exécutable natif léger et autonome

Deno a lancé la commande deno desktop, conçue pour transformer les applications Web en binaires natifs pour macOS, Windows ou Linux. Disponible dans la version 2.9.0 (canary) de Deno, cette fonctionnalité détecte automatiquement les frameworks web les plus courants, comme Next.js, Astro, Remix ou SvelteKit, et compile votre projet Deno en un binaire natif léger et autonome qui regroupe votre code, le runtime Deno et un moteur de rendu Web en un seul paquet par plateforme. Aucune modification du code n’est nécessaire pour porter un projet web existant sur le bureau.

Deno est un moteur d'exécution pour JavaScript, TypeScript et WebAssembly, basé sur le moteur JavaScript V8 et le langage de programmation Rust. Deno a été co-créé par Ryan Dahl, le créateur de Node.js, et Bert Belder. Deno assume explicitement le rôle à la fois de moteur d'exécution et de gestionnaire de paquets au sein d'un seul exécutable, sans nécessiter de programme de gestion de paquets distinct. Deno se veut un environnement de script productif et sécurisé destiné aux programmeurs modernes. À l'instar de Node.js, Deno met l'accent sur une architecture orientée événements, en proposant un ensemble d'utilitaires d'E/S de base non bloquants, ainsi que leurs versions bloquantes. Deno peut être utilisé pour créer des serveurs web, effectuer des calculs scientifiques, etc. Deno est un logiciel open source sous licence MIT.

Finie la lourdeur d'Electron, deno desktop convertit désormais les applications web en binaires natifs sans aucune configuration.

Pendant une décennie, développer une application de bureau multiplateforme à l'aide de technologies web impliquait d'accepter un compromis technique impitoyable : Electron. On disposait certes de vues web standard, mais les utilisateurs se retrouvaient avec des binaires « hello world » de plus de 150 Mo et une consommation de mémoire effrénée.

deno desktop, la nouvelle sous-commande native qui vient de sortir, redéfinit complètement les règles du jeu en matière de distribution pour ordinateurs de bureau. Au lieu d'encapsuler votre projet dans des couches IPC à forte friction et des frameworks lourds, deno desktop cible votre référentiel web existant (Next.js, Astro, Remix, SvelteKit, etc.) et le compile en un exécutable natif léger et autonome. Pas de réécriture de code, pas d'empreinte de dépendances massive, et une compatibilité totale avec Node/npm dès l'installation. Le paysage du développement pour ordinateur de bureau vient de changer pour de bon.

deno desktop transforme un projet Deno (qu'il s'agisse d'un simple fichier TypeScript ou d'une application Next.js) en une application de bureau autonome. Le résultat est un binaire redistribuable qui regroupe votre code, le runtime Deno et un moteur de rendu Web en un seul paquet par plateforme.


Pourquoi deno desktop ?

Les technologies web constituent la boîte à outils d'interface utilisateur la plus répandue au monde. Les applications de bureau développées à partir de piles web (Electron, Tauri, Electrobun) tirent parti de cet atout, mais chacune présente des inconvénients avec lesquels il faut composer : des binaires volumineux, une prise en charge insuffisante de certaines plateformes, l'absence d'écosystème JavaScript, l'absence de mécanisme de mise à jour intégré et l'absence d'intégration de framework.

deno desktop a une position bien définie sur ces compromis :

  • Petite taille par défaut, compatibilité totale avec Node. Le backend WebView par défaut utilise la WebView native du système d'exploitation pour obtenir des binaires légers, tout en permettant de continuer à bénéficier de l'intégralité de l'écosystème npm grâce à la couche de compatibilité Node de Deno. Les développeurs peuvent opter pour le backend Chromium (CEF) intégré lorsqu'ils ont besoin d'un rendu identique sous macOS, Windows et Linux.
  • Détection automatique du framework. Il suffit de pointer deno desktop vers un projet Next.js, Astro, Fresh, Remix, Nuxt, SvelteKit, SolidStart, TanStack Start ou Vite SSR pour qu’il s’exécute : le serveur de production en mode « release », et le serveur de développement avec rechargement à chaud (hot reload) via l’option --hmr. Aucune modification du code n’est nécessaire pour porter un projet web existant sur le bureau.
  • Des liaisons intra-processus plutôt que l'IPC. La communication entre le backend et l'interface utilisateur s'effectue via des canaux intra-processus, et non via une IPC basée sur des sockets. Les valeurs sont toujours encodées lorsqu'elles franchissent la frontière d'appel, mais il n'y a pas d'allers-retours inter-processus entre le code Deno et la vue Web.
  • Compilation croisée à partir d'une seule machine. Une même machine permet de compiler pour macOS, Windows et Linux. Les backends sont téléchargés à la demande, et non compilés localement.
  • Mise à jour automatique intégrée via la comparaison de binaires. Il suffit de fournir un seul manifeste latest.json et des correctifs bsdiff ; le runtime interroge, applique et annule automatiquement les modifications en cas d'échec au démarrage.

Hello, desktop

Créer une application de bureau en un seul fichier (main.ts) :

Code : Sélectionner tout
1
2
3
4
5
Deno.serve(() =>
  new Response("<h1>Hello, desktop</h1>", {
    headers: { "content-type": "text/html" },
  })
);
Code : Sélectionner tout
deno desktop main.ts

Le binaire compilé ouvre une fenêtre pointant vers un serveur HTTP local lié à votre gestionnaire Deno.serve(). Vous pouvez l'exécuter directement :

Code : Sélectionner tout
1
2
./main      # macOS / Linux
.\main.exe  # Windows

Deno.serve() se connecte automatiquement à l'adresse vers laquelle la vue Web navigue ; il n'est donc pas nécessaire de spécifier un port ou un nom d'hôte.

deno desktop est incluse dans Deno v2.9.0 et n'est pas encore disponible dans une version stable. Pour l'essayer, exécutez la commande deno upgrade canary afin d'installer la version canary. La commande, les clés de configuration et les API TypeScript sont susceptibles d'évoluer avant que la fonctionnalité ne soit stabilisée.

Source : Deno

Et vous ?

Quel est votre avis sur le sujet ?
Trouvez-vous cette nouvelle sous-commande de Deno utile et pertinente ?

Voir aussi :

Deno 2.6, la dernière version du runtime JavaScript et TypeScript moderne, est disponible avec l'outil dx, un contrôle plus granulaire des autorisations et une vérification des types TypeScript plus rapide

Deno contre Oracle : Deno a déposé une demande d'annulation de la marque JavaScript d'Oracle, Oracle a jusqu'au 4 janvier 2025 pour agir, sinon la marque sera probablement annulée

Pendant que Deno, le runtime de JS et TS, gagne en maturité, certaines entreprises tentent de l'utiliser en production, mais d'autres repartent non satisfaites à la suite des tests effectués
Vous avez lu gratuitement 15 261 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !