Aller au contenu
Tauri

Architecture Tauri

Tauri est une boîte à outils polyglotte et générique qui est très composable et permet aux ingénieurs de créer une grande variété d’applications. Elle est utilisée pour créer des applications pour ordinateurs de bureau en utilisant une combinaison d’outils Rust et de HTML rendu dans un Webview. Les applications construites avec Tauri peuvent être livrées avec un nombre quelconque de pièces d’une API JS optionnelle et d’une API Rust afin que les webviews puissent contrôler le système via le passage de messages. Les développeurs peuvent étendre l’API par défaut avec leurs propres fonctionnalités et relier facilement la Webview et le backend basé sur Rust.

Les applications Tauri peuvent avoir des interfaces de type plateau. Elles peuvent être mises à jour et sont gérées par le système d’exploitation de l’utilisateur comme prévu. Elles sont très petites car elles utilisent la webview de l’OS. Elles ne livrent pas de runtime puisque le binaire final est compilé à partir de Rust. Cela rend la rétro-ingénierie des applications Tauri une tâche non triviale.

Tauri n’est pas un wrapper de noyau léger. Au lieu de cela, il utilise directement WRY et TAO pour faire le gros du travail en effectuant des appels système à l’OS.

Tauri n’est pas une VM ou un environnement virtualisé. Au lieu de cela, c’est une boîte à outils d’application qui permet de créer des applications OS Webview.

Diagram
Représentation simplifiée de l’architecture Tauri.

Voir sur GitHub

C’est le crate majeur qui maintient tout ensemble. Il rassemble les runtimes, les macros, les utilitaires et l’API en un seul produit final. Il lit le fichier tauri.conf.json au moment de la compilation pour apporter des fonctionnalités et entreprendre la configuration réelle de l’application (et même le fichier Cargo.toml dans le dossier du projet). Il gère l’injection de scripts (pour les polyfills / révision de prototype) au moment de l’exécution, héberge l’API pour l’interaction des systèmes et gère même le processus de mise à jour.

Voir sur GitHub

La couche de liaison entre Tauri lui-même et les bibliothèques webview de bas niveau.

Voir sur GitHub

Crée des macros pour le contexte, le gestionnaire et les commandes en exploitant le crate tauri-codegen.

Voir sur GitHub

Code commun réutilisé à de nombreux endroits et offrant des utilitaires utiles comme l’analyse des fichiers de configuration, la détection des triplets de plateforme, l’injection du CSP et la gestion des actifs.

Voir sur GitHub

Applique les macros au moment de la construction pour équiper certaines fonctionnalités spéciales requises par cargo.

Voir sur GitHub

Intègre, hache et compresse les actifs, y compris les icônes pour l’application ainsi que la barre d’état système. Analyse tauri.conf.json au moment de la compilation et génère la structure Config.

Voir sur GitHub

Ce crate ouvre des interactions directes au niveau du système spécifiquement pour WRY, telles que l’impression, la détection de moniteur et d’autres tâches liées au fenêtrage.

Voir sur GitHub

Une bibliothèque typescript qui crée des points de terminaison JavaScript cjs et esm à importer dans votre framework frontend afin que la Webview puisse appeler et écouter l’activité du backend. Elle est également livrée en typescript pur, car pour certains frameworks c’est plus optimal. Elle utilise le passage de messages des webviews à leurs hôtes.

Voir sur GitHub

Une bibliothèque qui construit une application Tauri pour la plateforme qu’elle détecte ou qu’on lui indique. Prend actuellement en charge macOS, Windows et Linux - mais prendra bientôt en charge les plateformes mobiles. Peut être utilisée en dehors des projets Tauri.

Voir sur GitHub

Cet exécutable Rust fournit l’interface complète pour toutes les activités requises pour lesquelles la CLI est nécessaire. Il fonctionne sur macOS, Windows et Linux.

Voir sur GitHub

Wrapper autour de cli.rs utilisant napi-rs pour produire des paquets npm pour chaque plateforme.

Voir sur GitHub

Une boîte à outils qui permettra aux équipes d’ingénierie de créer rapidement un nouveau projet tauri-apps en utilisant le framework frontend de leur choix (tant qu’il a été configuré).

L’organisation Tauri-Apps maintient deux crates “en amont” de Tauri, à savoir TAO pour créer et gérer les fenêtres d’application, et WRY pour l’interface avec la Webview qui vit dans la fenêtre.

Voir sur GitHub

Bibliothèque de création de fenêtres d’application multiplateforme en Rust qui prend en charge toutes les principales plateformes comme Windows, macOS, Linux, iOS et Android. Écrite en Rust, c’est un fork de winit que nous avons étendu pour nos propres besoins - comme la barre de menu et la barre d’état système.

Voir sur GitHub

WRY est une bibliothèque de rendu WebView multiplateforme en Rust qui prend en charge toutes les principales plateformes de bureau comme Windows, macOS et Linux. Tauri utilise WRY comme couche abstraite responsable de déterminer quelle webview est utilisée (et comment les interactions sont faites).

Voir sur GitHub

Workflow GitHub qui construit des binaires Tauri pour toutes les plateformes. Permet même de créer une application Tauri (très basique) même si Tauri n’est pas configuré.

Voir sur GitHub

Ce projet améliore l’interface de Visual Studio Code avec plusieurs fonctionnalités agréables à avoir.

Voir sur GitHub

Vous permet d’installer très rapidement Tauri dans un projet vue-cli.

Guide des plugins Tauri

De manière générale, les plugins sont créés par des tiers (bien qu’il puisse y avoir des plugins officiels et pris en charge). Un plugin fait généralement 3 choses :

  1. Permet au code Rust de faire “quelque chose”.
  2. Fournit une interface de liaison pour faciliter l’intégration dans une application.
  3. Fournit une API JavaScript pour l’interface avec le code Rust.

Voici quelques exemples de plugins Tauri :

Tauri lui-même est sous licence MIT ou Apache-2.0. Si vous le reconditionnez et modifiez le code source, il est de votre responsabilité de vérifier que vous respectez toutes les licences en amont. Tauri est fourni TEL QUEL sans aucune réclamation explicite d’adéquation à un usage quelconque.

Ici vous pouvez consulter notre Nomenclature logicielle.


© 2025 Tauri Contributors. CC-BY / MIT