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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Dirigeant
    Inscrit en
    Juin 2016
    Messages
    3 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Dirigeant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 3 160
    Points : 66 249
    Points
    66 249
    Par défaut auri : une alternative à Electron écrite en Rust permettant de construire des applications pour le bureau
    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.

    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.

    Nom : tauri.png
Affichages : 609127
Taille : 36,9 Ko

    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.

    Nom : comparaisonEvsT1.png
Affichages : 17814
Taille : 46,8 Ko

    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
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 197
    Points : 225
    Points
    225
    Par défaut
    Pas clair, en gros il va finalement utiliser un navigateur pour le rendu, donc ça revient à la même chose quasiment non ?

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 135
    Points : 391
    Points
    391
    Par défaut
    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

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Développeur Front-End
    Inscrit en
    Juin 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Front-End
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2020
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    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 ?

  5. #5
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 135
    Points : 391
    Points
    391
    Par défaut
    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.

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2007
    Messages : 884
    Points : 2 018
    Points
    2 018
    Par défaut Avantage
    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.
    Tout ce que j'écris est libre de droits (Licence CC0) et je vous incite à faire de même.

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 506
    Points : 1 289
    Points
    1 289
    Par défaut
    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.

  8. #8
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut


    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 😁
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  9. #9
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 864
    Points : 3 703
    Points
    3 703
    Par défaut
    Salut,

    Je viens de tomber sur ce billet...

    Alors depuis le temps est-ce qu'on en sait un peu plus ? C'est bien ou pas ?

    Est-ce mieux qu'Electron ?

    Pour le rendu on utilise toujours un navigateur cela parait logique mais je me demandais pourquoi on utiliser pas celui installé sur la machine, maintenant que Edge est basé sur chromium ?

    A priori j'aime bien la documentation d'Electron qui me semble bien détaillée et on la trouve même en français... E
    Electron a de l'avance et du coup on trouve beaucoup de ressources...

  10. #10
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 549
    Points : 15 450
    Points
    15 450
    Par défaut
    C'est bien ou pas ?
    C'est jeune mais semble-il utilisable sérieusement.

    Est-ce mieux qu'Electron ?
    Tout dépend ce que l'on entend par "mieux". C'est plus léger mais pas aussi mature.

    pourquoi on utiliser pas celui installé sur la machine, maintenant que Edge est basé sur chromium ?
    C'est le cas : il utilise Webview2 sous Windows qui utilise le même moteur que Edge dernière génération. Sous macOS, et Linux il utilise la bibliothèque Webkit.

  11. #11
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 864
    Points : 3 703
    Points
    3 703
    Par défaut
    Merci.

    Citation Envoyé par Uther Voir le message
    C'est le cas il utilise Webview2 sous Windows qui utilise le même moteur que Edge dernière génération. Sous macOS, et Linux il utilise la bibliothèque Webkit.
    Du coup il n'embarque pas chromium comme Electron, c'est peut-être pour cela (ou du moins ce serait une des raisons) qu'il est plus léger ?

  12. #12
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 549
    Points : 15 450
    Points
    15 450
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Merci.

    Du coup il n'embarque pas chromium comme Electron, c'est peut-être pour cela (ou du moins ce serait une des raisons) qu'il est plus léger ?
    Probablement, mais Webwiew2 et WebKit ont certainement un poids conséquent aussi. C'est juste qu'ils sont déjà installés sur certains OS

  13. #13
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 864
    Points : 3 703
    Points
    3 703
    Par défaut
    Merci.

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/03/2020, 17h02
  2. Réponses: 5
    Dernier message: 24/07/2019, 10h55
  3. Réponses: 1
    Dernier message: 01/04/2010, 23h23
  4. Réponses: 7
    Dernier message: 03/07/2009, 10h37
  5. cherche un langage permettant de réaliser des applications en trois dimensions
    Par christian123 dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 26/10/2007, 12h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo