Par akademiotoelektronik, 20/03/2022

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

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.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

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) ;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

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

Mots clés: