← Retour au blog

Dioxus 0.8 et Wails v3 ripostent contre Electron 42

Wails v3.0.0-alpha2.105, Dioxus 0.8 alpha et Electron 42 ont tous été lancés en l'espace de quelques semaines en 2026, redéfinissant la façon dont les applications de bureau multiplateforme sont construites.

Partager : XFacebookLinkedInWhatsApp
Desliza para seguir leyendo

Un sprint de cinq semaines qui a redessiné la carte des frameworks de bureau

En l'espace de seulement cinq semaines, les trois frameworks les plus regardés pour le développement d'applications de bureau multiplateforme ont chacun franchi un jalon important. Electron 42 a été livré le 7 mai 2026, avec Chromium 148, Node.js 24 et la prise en charge native de WebAuthn Touch ID. Dioxus 0.8.0-alpha.0 a suivi le 19 mai, ouvrant le nouveau cycle de rendu natif accéléré par GPU du framework et complétant la migration vers Rust Edition 2024. Puis, le 21 juin 2026 — un jour avant que cet article ne soit mis sous presse — le projet Wails a lancé v3.0.0-alpha2.105, son alpha la plus complète à ce jour, avec la prise en charge complète d'iOS et Android, TypeScript comme langage par défaut pour les nouveaux projets, et un assistant de configuration interactif. La convergence n'est pas fortuite : le développement de bureau subit son débat architectural le plus profond depuis des années, et les trois projets signalent que la mi-2026 est le moment d'élargir leur audience.

Les enjeux sont réels. Des dizaines de millions d'utilisateurs quotidiens exécutent des applications construites sur Electron — VS Code, Slack, Discord, Notion et 1Password en sont quelques exemples — tandis que Wails et Dioxus accumulent les étoiles GitHub et la dynamique communautaire qui précèdent l'adoption grand public. Une discussion largement partagée sur Hacker News en mai 2026 dans laquelle un développeur a comparé les cinq principaux frameworks multiplateforme a attiré des centaines de commentaires et a cristallisé la tension centrale : Electron gagne sur la maturité de l'écosystème et la familiarité des développeurs, mais perd sur la taille binaire, l'empreinte mémoire et le temps de démarrage par rapport à chaque métrique qui compte au niveau du système d'exploitation.

Wails v3.0.0-alpha2.105 : le bureau alimenté par Go atteint les territoires mobiles

Lancée le 21 juin 2026, Wails v3.0.0-alpha2.105 est l'aboutissement d'une cadence de publication rapide qui a vu plus d'une centaine de balises alpha depuis l'ouverture de la branche v3. L'ajout phare est la prise en charge complète du mobile : les applications iOS et Android peuvent maintenant être construites à partir de la même base de code Go qui alimente la construction de bureau, avec les boîtes de dialogue natives, l'accès au presse-papiers, l'authentification biométrique, les commentaires haptiques, la géolocalisation, la capture de caméra et l'exécution en arrière-plan tous connectés via un nouveau pont de fonctionnalités mobiles. Le chemin vers cette version a été incrémental et délibéré.

Alpha 101 (5 juin) a établi la fondation iOS avec les boîtes de dialogue de messages natifs, les métriques d'écran réelles, la signature de code et l'emballage .ipa. Alpha 103 (15 juin) a réorganisé le modèle d'événements de plateforme, introduisant les préfixes d'événements espacés common:*, ios:* et android:* pour le pont mobile. Alpha 104 (18 juin) a corrigé un plantage déclenché quand les méthodes Go liées renvoyaient des chaînes vides sur iOS. Alpha 105 a complété le cycle en introduisant application.System pour la détection de plateforme à l'exécution, en corrigeant un plantage de minimisation Windows et un plantage GTK Linux, en faisant de TypeScript le langage par défaut dans tous les modèles de démarrage, et en publiant un guide pour les développeurs qui souhaitent intégrer une configuration Vite personnalisée au lieu de l'outillage frontend du framework.

Ce qui a changé entre Wails v2 et v3

Wails v2 est actuellement en utilisation active en production, mais v3 n'est pas une mise à jour ponctuelle — c'est une repensée structurelle. Le changement le plus visible est la prise en charge de plusieurs fenêtres : là où v2 limitait chaque application à une seule fenêtre, v3 traite les fenêtres comme des objets d'exécution de première classe qui peuvent être créés, détruits, affichés, cachés et configurés individuellement, permettant des palettes flottantes, des volets d'éditeur secondaires, des panneaux de notification et des surfaces d'interface utilisateur plus complexes. Le système de construction a été complètement remplacé : au lieu de cacher les détails de compilation dans une commande CLI monolithique, v3 expose chaque étape de construction en tant qu'outil de commande discret, orchestré via l'intégration Taskfile. Les développeurs peuvent maintenant personnaliser le pipeline à n'importe quel point — une capacité que les équipes d'entreprise avec des flux de travail de signature ou de notarisation spécialisés demandaient depuis que v2 a été lancée.

Le nouvel assistant interactif wails3 setup, introduit expérimentalement dans alpha 102 et affiné dans alpha 105, guide les utilisateurs pour la première fois à travers la vérification des dépendances et l'installation des outils mobiles étape par étape, réduisant considérablement les frictions qui ont historiquement rendu les environnements de construction multiplateforme basés sur Go intimidants. L'assistant accepte maintenant également un drapeau --json, permettant une sortie lisible par machine adaptée à l'approvisionnement CI automatisé.

L'architecture derrière Wails

Wails occupe une niche distinctive dans l'écosystème de bureau. Le backend d'application est écrit en Go, un langage compilé typé statiquement qui produit des petits binaires autonomes sans surcharge d'interpréteur. Le frontend est rendu par le WebView natif de la plateforme — WKWebView sur macOS, WebView2 sur Windows et WebKitGTK sur Linux — plutôt qu'une instance Chromium groupée. Une application Wails typique est livrée en bas single digits mégaoctets plutôt que le minimum de 120-150 Mo que les applications Electron nécessitent, et le temps de démarrage est mesuré en dizaines de millisecondes plutôt qu'en secondes. Le compromis est la cohérence de rendu : les WebViews natifs se comportent légèrement différemment sur les plateformes et les versions du système d'exploitation, nécessitant occasionnellement des contournements CSS ou JavaScript qu'Electron, avec son snapshot Chromium fixe, évite entièrement.

« Le modèle de concurrence de Go rend véritablement agréable d'écrire la logique backend qui alimente une interface utilisateur de bureau. Les canaux et les goroutines s'associent proprement aux interfaces pilotées par événements. » — sentiment récurrent dans le forum communautaire Wails et Discord

Dioxus 0.8.0-alpha.0 : le rendu GPU et Rust 2024 arrivent ensemble

DioxusLabs a marqué v0.8.0-alpha.0 le 19 mai 2026, ouvrant le cycle de développement 0.8 approximativement quatre mois après le dernier correctif de la série 0.7. La version est explicitement positionnée comme le début d'un cycle plutôt qu'un aperçu complet des fonctionnalités, mais elle contient déjà des changements suffisamment importants pour nécessiter un guide de migration dédié — ce qui en fait l'alpha Dioxus la plus structurellement brisante depuis le lancement du projet.

Le rendu GPU dioxus-native prend une grande étape en avant

Le changement architecturalement le plus significatif dans l'alpha 0.8 est la maturation de dioxus-native, le moteur de rendu qui peint les applications Dioxus entièrement sur le GPU en utilisant wgpu, l'implémentation de Rust de l'API graphique WebGPU. Les notes de publication décrivent une « énorme mise à niveau de qualité » avec le rendu incrémental, la prise en charge des éléments personnalisés et les capacités de rendu considérablement élargies par rapport à ce que l'aperçu 0.7 a expédié. Aux côtés de cela, le projet Blitz — un moteur de mise en page HTML et CSS modulaire que l'équipe DioxusLabs a démontré publiquement à Rustweek 2026 — devient l'épine dorsale de mise en page pour dioxus-native, apportant des primitives CSS familières comme flexbox, grille et mise en forme du texte au moteur de rendu GPU sans nécessiter un moteur de navigateur complet à l'exécution.

L'importance de cette direction est difficile à exagérer. Tauri, actuellement le framework alternatif Electron le plus populaire basé sur Rust, rend toujours son interface utilisateur à l'intérieur d'une WebView système. Dioxus est le seul grand framework de l'écosystème Rust poursuivant un chemin crédible où la WebView est entièrement optionnelle : le même arbre de composants Dioxus et le modèle d'état basé sur les signaux peuvent cibler le web via WebAssembly, le bureau via une WebView, le bureau via le rendu GPU natif et le mobile — tout sans changer une ligne de logique d'application. Quand dioxus-native atteindra la stabilité, cela donnerait aux développeurs Rust un chemin de base de code unique qui produit zéro dépendance sur un moteur de navigateur à l'exécution.

Rust Edition 2024 et la migration objc2

L'alpha 0.8 migre l'ensemble de la base de code Dioxus vers Rust Edition 2024, la première édition linguistique importante depuis 2021. La nouvelle édition introduit une syntaxe de clôture asynchrone plus propre, une meilleure gestion des durées de vie temporaires et plusieurs changements ergonomiques à la correspondance qui ont été discutés depuis Rust 1.75. Aux côtés de cela, le framework a remplacé ses liaisons FFI Objective-C héritées sur macOS et iOS par objc2, une caisse Rust moderne et sûre en mémoire pour appeler directement les API de plateforme Apple. La migration élimine une catégorie entière de code non sûr dans le backend macOS et aligne Dioxus avec l'approche adoptée par l'équipe Tauri, le projet Servo et autres grands projets Rust ciblant les plateformes Apple.

Le correctif à chaud — introduit comme une fonctionnalité expérimentale dans Dioxus 0.7 — est maintenant activé par défaut dans l'alpha 0.8 CLI. La fonctionnalité permet aux développeurs de modifier le code source Rust et de voir les changements reflétés dans l'application en cours d'exécution en temps subseconde, sans perdre l'état de l'application. Combiné avec le nouveau support de rechargement à chaud Cargo.toml et un observateur de fichiers dynamique, la boucle de développement 0.8 approche maintenant la vitesse que les développeurs JavaScript tiennent pour acquise avec Vite-powered React ou Svelte. Pour un langage compilé typé statiquement, cela représente un changement significatif dans l'ergonomie des développeurs.

La feuille de route 0.8 : FFI, widgets natifs et une poussée vers 1.0

La feuille de route 0.8 officielle publiée sur GitHub Discussions énumère plusieurs fonctionnalités phares que l'alpha ne livre pas encore. Un pont FFI Swift, Kotlin et Java permettra aux applications Dioxus d'appeler directement les API natives de la plateforme sans router via une couche web — permettant l'utilisation des feuilles de caméra système, des contacts, HealthKit et autres capacités spécifiques à la plateforme. L'intégration des widgets natifs dans dioxus-native permettra aux contrôles de plateforme tels que NSTableView macOS ou ListView Windows d'être intégrés dans l'arbre des composants Dioxus, améliorant l'accessibilité et la fidélité visuelle pour les interfaces puissantes des utilisateurs. La feuille de route énumère également les API natives complètes couvrant la caméra, la géolocalisation, OAuth et le stockage local, ainsi que l'intégration de l'IDE VSCode et Cursor pour afficher les diagnostics spécifiques à Dioxus et les aperçus des composants directement dans l'éditeur. L'élément de feuille de route le plus conséquent est un objectif déclaré de « fonctionnalité core 1.0 pour les auteurs de bibliothèques », un signal que le projet se rapproche du type de stabilité API que les auteurs de bibliothèques tiers doivent avant de pouvoir expédier sans crainte de ruptures de changements entre les versions mineures de Dioxus.

Aucune chronologie officielle n'existe pour la version stable 0.8, mais l'équipe a indiqué que les blocs de construction d'API natifs arrivent de manière incrémentale sur les versions alpha, avec des contributions communautaires — que l'équipe dit avoir considérablement accélérées depuis début 2026 — poussant les fonctionnalités en avant plus rapidement que l'équipe centrale ne l'attendait.

Electron 42 consolide la norme de production pour JavaScript Desktop

Tandis que Dioxus et Wails itèrent en alpha, Electron 42, lancée le 7 mai 2026, définit ce que les applications de bureau en production ressemblent pour l'écosystème JavaScript. La version est livrée avec Chromium 148.0.7778.96, Node.js 24.15.0 et V8 14.8. La branche stable a atteint v42.4.1 le 16 juin 2026, mise à jour vers Chromium 148.0.7778.265 et Node.js 24.16.0. Pendant ce temps, v43.0.0-beta.5 est déjà en test avec Chromium 150.0.7871.13, suggérant qu'Electron 43 atteindra la stabilité à la fin de l'été 2026.

Ajouts clés dans Electron 42

Le changement le plus axé sur les développeurs dans Electron 42 est une restructuration de la façon dont le framework gère son propre binaire. Auparavant, le package npm electron exécuterait un script postinstall qui téléchargerait le binaire Electron immédiatement après npm install. Dans la version 42, le binaire est téléchargé dynamiquement au premier lancement, permettant à Electron d'être installé avec le drapeau --ignore-scripts — une exigence de longue date pour les déploiements d'entreprise opérant dans des environnements CI restreints où les scripts postinstall sont bloqués par la politique de sécurité. Le téléchargement est normalement mis en cache sur les exécutions ultérieures, donc il n'y a pas de coût de latence d'exécution pour les utilisateurs finaux.

WebAuthn Touch ID est maintenant une API Electron de première classe sur macOS. Les développeurs peuvent activer l'authentification biométrique via app.configureWebAuthn({ touchID: { keychainAccessGroup } }), une capacité qui auparavant nécessitait d'expédier un module natif personnalisé. Les animations au niveau de la vue arrivent via view.setBounds() avec les options d'animation, et une nouvelle méthode view.setBackgroundBlur() permet le traitement en verre dépoli que les applications système macOS comme Finder et Notes utilisent de manière répandue. Sur le front des notifications, Electron 42 migre de l'API NSUserNotification dépréciée vers le système moderne UNNotification, en ajoutant Notification.getHistory() et le regroupement via les options id et groupId. La migration s'accompagne d'une nouvelle contrainte : les notifications macOS nécessitent maintenant que l'application soit signée par code, ce qui pourrait affecter les builds de développement non signés qui reposent sur les notifications de bureau pour les commentaires des utilisateurs.

Le débat continu sur l'empreinte d'Electron

L'adoption par Electron 42 de Node.js 24 et Chromium 148 signifie également que chaque application Electron regroupe maintenant un moteur de navigateur qui — en soi — est plus grand que la plupart des applications Wails ou Tauri entières. Une application Electron minimale est livrée à environ 120-150 Mo sur disque ; les applications de production comme Slack ou Discord consomment plus de 300 Mo de RAM en utilisation typique avant de charger des données utilisateur. Ces chiffres n'ont pas changé de manière significative malgré les optimisations incrémentielles du moteur, et ils restent l'argument principal que les frameworks concurrents soulèvent dans les conversations des développeurs. Pour les équipes où la taille binaire ou la consommation de mémoire est une contrainte produit difficile — des kiosques intégrés, des appareils à faible mémoire ou des applications ciblant les régions avec une bande passante coûteuse — l'empreinte d'Electron est un véritable disqualificateur plutôt qu'un compromis acceptable.

Combat d'architecture : trois paris différents sur l'avenir du bureau

Évaluées ensemble, Electron, Wails et Dioxus représentent trois hypothèses fondamentalement différentes sur ce que l'exécution idéale de bureau multiplateforme ressemble en 2026. Comprendre ces hypothèses rend le choix entre elles moins une question de préférence et plus une question de savoir quels compromis s'alignent avec les contraintes d'un projet donné.

Electron : pariez sur le navigateur comme boîte à outils d'interface utilisateur universelle

L'hypothèse d'Electron est que la plateforme web est déjà la meilleure boîte à outils d'interface utilisateur généraliste, et la bonne approche est de regrouper une copie contrôlée et versionnée de Chromium aux côtés d'un runtime Node.js et donner aux développeurs un accès complet aux deux. N'importe quel package npm, n'importe quel framework CSS, n'importe quel bundler JavaScript fonctionne exactement comme sur le web. Le coût est que chaque application Electron est livrée avec un navigateur complet : Chromium plus Node.js plus le propre bundle JavaScript de l'application. Electron est le bon choix quand l'équipe de développement vit déjà dans l'écosystème JavaScript, le poids binaire est un compromis acceptable pour l'accès à l'ensemble du registre npm, et l'application doit correspondre à la parité des fonctionnalités avec une version web du même produit — comme le font VS Code, Notion et Figma.

Wails : pariez sur la WebView système avec les performances Go

L'hypothèse de Wails est que les systèmes d'exploitation modernes expédient déjà une WebView capable et activement maintenue, et les développeurs devraient l'utiliser plutôt que de regrouper la leur. Le frontend reste HTML, CSS et JavaScript — React, Vue, Svelte et TypeScript fonctionnent tous de la boîte — mais le rendu est délégué à WKWebView, WebView2 ou WebKitGTK selon la plateforme. Le backend est du Go compilé, qui produit un binaire natif sans dépendance d'interpréteur. Les applications sont livrées en bas mégaoctets, commencent en millisecondes et utilisent une fraction de la mémoire d'un équivalent Electron. Avec TypeScript maintenant défini par défaut dans les modèles de démarrage v3 et l'expansion mobile en cours, Wails cible clairement les développeurs qui veulent la productivité du frontend de type JavaScript avec les performances du backend Go — la même audience qui utilise actuellement Flutter pour le mobile et cherche un chemin vers le bureau qui ne nécessite pas d'apprendre Dart.

Dioxus : pariez sur Rust et ignorez complètement le navigateur

Dioxus prend la position la plus radicale : et si vous n'aviez pas besoin d'un navigateur du tout — pas même une WebView système ? Le moteur de rendu dioxus-native du framework dessine directement l'interface utilisateur sur le GPU via wgpu, avec un moteur de mise en page alimenté par Blitz qui réimplémente juste assez du modèle de mise en page du navigateur pour faire fonctionner les primitives de style familières sans un runtime de navigateur. Le résultat est une application sans aucune dépendance d'un moteur de navigateur, un seul binaire natif, un démarrage instantané et la capacité de s'exécuter sur des plateformes où l'intégration d'une WebView est difficile ou impossible. Le risque est que dioxus-native mûrisse encore — l'alpha 0.8 représente une grande étape en avant, mais la parité complète de rendu avec un moteur de navigateur reste un travail en cours. Le framework nécessite également de connaître Rust, qui porte une courbe d'apprentissage plus raide que Go, et une courbe bien plus raide que JavaScript. Pour les équipes travaillant déjà en Rust, cependant, Dioxus offre un chemin vers véritablement portable, les applications sans navigateur qui se compilent également en WebAssembly pour le web.

Dynamique communautaire et ce qui vient ensuite

Les trois projets montrent une accélération mesurable de l'engagement communautaire au cours du premier semestre 2026. Le référentiel GitHub de Dioxus a dépassé 25 000 étoiles, et le fil de discussion de la feuille de route 0.8 a attiré des contributeurs externes dont les demandes de tirage ont — selon l'équipe principale — accélération de la livraison des blocs de construction d'API natifs en avance sur le calendrier. Wails a dépassé 30 000 étoiles et son serveur Discord est visiblement plus actif en 2026 que dans n'importe quelle année antérieure. Electron, au-delà de la phase où les décomptes d'étoiles sont des signaux pertinents, bénéficie plutôt de sa base installée : des dizaines de millions d'utilisateurs exécutent quotidiennement des applications Electron, et la gouvernance du framework sous la Fondation OpenJS donne aux adoptants d'entreprise les garanties de stabilité à long terme que les projets plus récents ne peuvent pas encore offrir.

Les prochains jalons majeurs à surveiller : Electron 43 est en bêta (v43.0.0-beta.5 à l'heure de cette écriture) avec Chromium 150 et devrait atteindre la stabilité avant la fin de l'été 2026. Dioxus 0.8 stable n'a pas de date engagée, mais l'équipe libère les améliorations d'API natifs de manière incrémentale tout au long du cycle alpha. Wails v3 a été en alpha pendant plus de dix-huit mois ; le passage de la dénomination alpha à alpha2 dans les balises récentes suggère que le projet entre dans une deuxième phase, plus axée sur la stabilité avant la bêta. Avec TypeScript maintenant par défaut, la prise en charge mobile atterrie et l'assistant de configuration expédié, v3 est plus proche d'une version stable qu'à n'importe quel point antérieur de son développement.

Pour les développeurs choisissant un framework aujourd'hui, le consensus communautaire est cohérent dans les forums, les serveurs Discord et les fils Hacker News qui ont discuté ces versions en mai et juin 2026 : choisissez Electron si votre équipe est native de JavaScript et la taille binaire n'est pas une contrainte difficile ; choisissez Wails si vous voulez la productivité du stack web frontend avec les performances du backend Go et un poids d'expédition minimal ; choisissez Dioxus si vous construisez en Rust et voulez une base de code unique qui peut cibler le web, le bureau et le mobile sans lier votre runtime à un moteur de navigateur. Aucun de ces choix n'est mauvais, mais l'écart entre eux — en performance, écosystème et maturité — se rétrécit plus rapidement en 2026 qu'à n'importe quel moment auparavant.