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 !

Tauri : une alternative à Electron écrite en Rust permettant de construire des applications pour le bureau
à partir de n'importe quel framework frontal basé sur HTML et JavaScript

Le , par Bill Fassinou

184PARTAGES

14  0 
La création d'applications pour le bureau est longuement apparue comme difficile, notamment en raison du fait qu'il fallait connaître des langages comme Java ou C++ et un certain nombre de spécifications liées à la plateforme visée. Cependant, au fur et à mesure des progrès technologiques, des frameworks comme Electron sont apparus, ont simplifié le processus, et ont permis d'écrire des applications comme Slack, Figma, Twitch, etc. Désormais, Tauri, une chaîne d'outils permettant de créer des applications natives pour le bureau, s'illustre comme une alternative sérieuse à Electron.

Qu'est-ce que Tauri ?

Comme le décrit son site officiel, Tauri est une chaîne d'outils polyglotte permettant de créer des applications natives plus sûres avec des binaires à la fois minuscules et rapides. "Polyglotte" signifie que Tauri utilise plusieurs langages de programmation. Pour l'instant, Rust, JavaScript et TypeScript sont utilisés, mais les développeurs de la chaîne d'outils prévoient de vous permettre d'utiliser Go, C++, Python, et plus encore. Tauri vous permet d'utiliser n'importe quel framework frontal basé sur HTML et JavaScript, tel que Vue.js, React ou Angular, pour créer une application de bureau native.



En outre, Tauri peut être intégrée dans n'importe quel pipeline. Il vous aide en effet à créer et à regrouper des binaires pour les principales plateformes de bureau. En gros, Tauri vous permet d'utiliser les technologies du Web pour créer des applications de bureau natives minuscules et sécurisées. Sur sa page GitHub, Tauri est décrit comme une chaîne d'outils sans framework pour la création d'applications natives hautement sécurisées qui ont de minuscules binaires (c'est-à-dire la taille du fichier) et qui sont très rapides (c'est-à-dire une utilisation minimale de la RAM).

Détails techniques

  • CLI : la CLI est basée sur Node.js. Selon l'équipe, elle est sans doute la plus accessible pour la majorité de la communauté des développeurs Web. L'utilisation de Tauri nécessite la dernière version du LTS, car l'équipe de développement a déclaré qu'elle suit les correctifs de sécurité. Toutefois, à l'avenir, elle vous permettra d'utiliser Deno au lieu de Node si c'est ce que vous préférez ;
  • interface utilisateur : l'interface utilisateur de première génération des applications Tauri exploite Cocoa/WebKit sous macOS, GTK-WebKit2 sous Linux et WebKit via EdgeHTML/Chakra sous Windows. Tauri exploite le travail sous licence du MIT connu sous le nom de WebView qui a été incorporé dans les spécifications officielles de webview_rust.
  • le dossier "src-tauri" : le dossier "src-tauri" contient la configuration de votre application Tauri ainsi que tout code Rust natif. Il est automatiquement créé et rempli de code passe-partout lors de l'initialisation de Tauri. La configuration est stockée dans le fichier src-tauri/tauri.conf.json, et le dossier src-tauri/src contient le code natif de Rust ;
  • composants de Tauri : le CLI du nœud lit votre fichier de configuration et prépare tout pour le regroupement en binaire, par exemple la configuration de l'injection de l'API Tauri. Il contient également quelques commandes utiles, telles que la commande "tauri icon" pour la création d'icônes, "tauri init" pour commencer une nouvelle application et "tauri info" pour le débogage de votre environnement ;
  • Tauri Rust Crate : c'est le code natif réel qui se lie au WebView, crée la fenêtre de votre application et fournit l'API native (lecture/écriture de fichiers, etc.) ;
  • le bundler combine votre HTML/JS/CSS, le code natif Rust et Tauri Rust Crate en un binaire convivial et facile à utiliser pour votre OS cible.

Pourquoi avoir choisi Rust ?

Les créateurs de Tauri ont répondu qu'ils ont fait le choix de Rust pour la simple et bonne raison qu'il "est extrêmement rapide et efficace sur le plan de la mémoire". « Il est runtime et sans collecteur de déchets, il peut alimenter des services à performances critiques, fonctionner sur des appareils embarqués et s'intégrer facilement à d'autres langues. La richesse du système de types et du modèle de propriété de Rust garantit la sécurité de la mémoire et des threads, et vous permet d'éliminer de nombreuses classes de bogues au moment de la compilation », ont-ils déclaré.

« Rust dispose d'une excellente documentation, d'un compilateur convivial avec des messages d'erreur utiles, et d'un outillage de premier ordre, un gestionnaire de paquets et un outil de compilation intégrés, un support multiéditeur intelligent avec autocomplétion et inspections de type, un autoformatage, et plus encore », a ajouté l'équipe de développement de Tauri. Si vous vous demandez s'il faut connaître Rust avant de pouvoir utiliser Tauri, l'équipe a répondu que non, mais en connaître les bases serait un grand atout si vous voulez aller loin avec Tauri.

« Vous n'avez pas besoin de connaître Rust pour utiliser (la plupart de) Tauri, mais comme pour toute chose, le terrier du lapin est aussi profond que vous êtes prêt à y tomber. Si vous ne connaissez pas du tout Rust, nous vous recommandons de regarder d'abord notre étonnante liste de tutoriels », a déclaré l'équipe.

Electron Vs Tauri : les différences

Electron est un framework d'exécution qui permet à l'utilisateur de créer des applications de bureau avec HTML5, CSS et JavaScript. C'est un projet open source lancé par Cheng Zhao, un ingénieur de GitHub. Il existe depuis un certain temps déjà et a même été adopté en masse par des développeurs et de grandes entreprises comme Atom, Visual Studio Code, etc. En effet, il est actuellement le framework le plus populaire dans sa catégorie, mais de sérieux concurrents commencent à apparaître, en travaillant notamment à combler les lacunes d'Electron.

Par exemple, les applications Electron ont une taille de paquet assez importante et elles ont tendance à prendre beaucoup de mémoire lorsqu'elles sont exécutées. Le tableau suivant, tiré de sa page GitHub, compare certaines caractéristiques qui distinguent Tauri d'Electron.



Les avantages de Tauri

Voici les raisons pour lesquelles vous pourriez envisager d'utiliser Tauri dans votre prochaine application de bureau :

  • il est compatible avec tout framework JavaScript, vous n'avez donc pas à changer de pile ;
  • sa variété de modèles de conception permet de commencer à mettre en œuvre des fonctionnalités avec des configurations faciles ;
  • bundle : comme vous l'avez vu dans le tableau ci-dessus, la taille d'une application Tauri n'est que de 0,60 Mo (600 Ko) ;
  • mémoire : l'empreinte d'une application Tauri est inférieure à la moitié de la taille d'une application Electron. Selon le tableau, elle est généralement d'environ 13 Mo ;
  • contrairement à l'Electron, le changement de licence est possible avec Tauri. En effet, Electron est livré avec Chromium dès la sortie de la boîte. Cependant, Chromium inclut un système de gestion des droits numériques nommé Widevine. L'inclusion de Widevine dans Chromium fait en sorte que les applications créées avec Electron sont désapprouvées par les utilisateurs de plateformes telles que PureOS pour la seule raison qu'il ne s'agit pas de logiciels gratuits/libres et open source (FLOSS – free/libre open source software). Les plateformes comme PureOS sont vérifiées par la Free Software Foundation (FSF). Cela signifie qu'ils ne peuvent publier que des logiciels gratuits et open source dans leurs magasins d'applications. Les applications construites avec la Tauri peuvent être officiellement expédiées dans PureOS ;
  • la flexibilité et l'absence de framework de Tauri permettent de transformer une base de code basée sur le Web en une application de bureau native, sans rien modifier.

Comment créer une application avec Tauri

Une application Tauri est créée en suivant les étapes suivantes :

  • tout d'abord, vous devez créer une interface dans votre framework GUI et préparez le HTML, le CSS et le JavaScript pour la consommation ;
  • la CLI de Tauri la prend et truque le code natif sous-jacent (Rust runner) en fonction de votre configuration ;
  • en mode développement, elle crée une fenêtre WebView, avec débogage et rechargement du module à chaud ;
  • en mode de construction, elle installe le bundler et crée une application finale (installateurs natifs) en fonction de vos paramètres.

Sources : Tauri, Page GitHub du projet

Et vous ?

Que pensez-vous de Tauri et de ses caractéristiques ?
Quelles comparaisons faites-vous entre Electron et Tauri ?
Pensez-vous que Tauri va surclasser Electron parce qu'il est écrit en Rust ?

Voir aussi

Electron, le framework pour le développement des apps multiplateformes de bureau avec HTML, CSS et JS, est disponible en version 11.0 et intègre désormais le support de l'architecture ARM64 d'Apple

Jitsi Meet Electron, l'application open source de visioconférence basée sur Jitsi, sort en version 2.0 avec de nouvelles fonctionnalités, des correctifs de bogues et des mises à jour de dépendances

Le framework de développement d'applications léger et portable Neutralino serait-il une alternative à Electron et NW.js ? Oui, selon l'équipe responsable

La version 3 de Vue.js, le framework JavaScript progressif, est disponible avec de nouvelles API et des améliorations de performance

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

Avatar de Jiyuu
Rédacteur/Modérateur https://www.developpez.com
Le 23/02/2021 à 22:38


Pour mon app basée sur Vue, j’ai commencé par utiliser Électron, mais j’ai vite été confronté à un gros problème : mon app, plutôt simple, pesait plus de 100mo.
Alors certes j’avais à dispo plein de fonctionnalités, comme par exemple zoomer facilement et garder en mémoire cette valeur, mais ça me paraissait réellement étrange d’avoir une taille d’app si importante.

J’ai donc testé Tauri. A première vue un peu moins facile à utiliser qu’Electron, par exemple certaines fonctionnalités de Node.js ne sont pas accessibles (oubliez fs.ReadFile par exemple) ou sinon des facilités pas dispo (le coup du zoom ci-dessus !!!)... mais une fois que l’on a compris la philosophie c’est assez surprenant : mon app passe à moins de 4mo !!! Et au final tout est faisable : il faut juste passer par l’API Tauri.

Donc niveau fonctionnalités RAS.

Le projet est jeune et en perpétuelle évolution. L’équipe est assez réactive et si un bogue est relevé sur GitHub, il peut être corrigé rapidement.
Ne pas hésiter non plus à questionner sur Discord.

Perso, je ne reviendrai pas en arrière. J’ai même prévu de faire quelques billets dessus sur mon blog car je trouve le projet très intéressant.

Voilà pour ce soir 😁
7  0 
Avatar de abriotde
Membre chevronné https://www.developpez.com
Le 23/02/2021 à 13:05
Selon ce que j'ai l’impression l'avantage n'est pas pour le rendu, mais pour tout le background qui peut-être fais en Rust, C/C++ ou Go. C'est ce qui permet a l'application d'être beaucoup plus légère en empreinte mémoire. Autrement dis, on peut mettre un processus d'IA ou autre "intelligence" sans faire ramer.
1  0 
Avatar de frfancha
Membre éprouvé https://www.developpez.com
Le 23/02/2021 à 14:53
Citation Envoyé par bilgetz Voir le message
Selon moi aucun reel avantage. Et je comprend toujours pas pourquoi le pwa ne se répand pas mieux que ca.
Ton code électron a accès à toutes les API natives sur Windows (via node.js).
=> Lire & écrire n'importe quel fichier
=> Lancer et interagir avec des process
C'est "LA" raison pour laquelle nous utilisons Electron.

Maintenant je peux me tromper et ce serait possible aussi à partir de pwa? Dans ce cas je serais heureux d'apprendre comment.

En tout cas la taille du packaging Electron (et la faibesse de la documentaiton sur le packaging) est effectivement un de ses désavantages, si Tauri peut améliorer cela c'est bon à prendre.
1  0 
Avatar de gstratege
Membre habitué https://www.developpez.com
Le 22/02/2021 à 22:27
Pas clair, en gros il va finalement utiliser un navigateur pour le rendu, donc ça revient à la même chose quasiment non ?
0  0 
Avatar de bilgetz
Membre averti https://www.developpez.com
Le 23/02/2021 à 6:57
Citation Envoyé par gstratege Voir le message
Pas clair, en gros il va finalement utiliser un navigateur pour le rendu, donc ça revient à la même chose quasiment non ?
C'est ce que fait Electron aussi, sauf qu'il est plus leger
0  0 
Avatar de dev00_
Futur Membre du Club https://www.developpez.com
Le 23/02/2021 à 7:27
C'est toujours bien qu'il y ait des alternatives aux cadors.

D'après le commentaire ci-dessus, les deux utilisent un webview.
Du coup quel est le réel avantage par rapport à une pwa ? Sachant que cette dernière peut aussi être installable sur bureau n'est-ce pas ?
0  0 
Avatar de bilgetz
Membre averti https://www.developpez.com
Le 23/02/2021 à 7:43
Citation Envoyé par dev00_ Voir le message
Du coup quel est le réel avantage par rapport à une pwa ? Sachant que cette dernière peut aussi être installable sur bureau n'est-ce pas ?
Selon moi aucun reel avantage. Et je comprend toujours pas pourquoi le pwa ne se répand pas mieux que ca.
0  0