23 points par xguru 2025-04-16 | 6 commentaires | Partager sur WhatsApp
  • En développant une application de contrôle à distance à très faible latence pour le pair programming à distance, l’équipe a adopté Tauri comme framework d’application
    • Les raisons de ce choix incluent les performances, l’efficacité mémoire et la prise en charge des sidecars
  • Grâce à un backend basé sur Rust et à l’utilisation du WebView système, la taille de l’application et la consommation mémoire sont bien plus faibles qu’avec Electron
  • Avec Tauri v2, l’écart fonctionnel se réduit rapidement : des fonctionnalités clés comme les mises à jour automatiques et les sidecars sont intégrées
  • Electron reste puissant, mais pour les besoins spécifiques de Hopp, Tauri est mieux adapté

Pourquoi Hopp a choisi Tauri

Contexte : choisir un framework d’application cross-platform

  • Hopp avait besoin d’une application desktop haute performance fonctionnant de manière identique sur Windows, macOS et Linux
  • Electron et Tauri sont deux choix de référence, avec des avantages et inconvénients bien distincts
  • L’équipe Hopp a fait son choix en mettant l’accent sur la maintenabilité à long terme et les performances

Tauri vs. Electron : différences structurelles

  • Architecture d’Electron

    • Nécessite d’inclure le runtime Node.js → taille de l’application plus importante
    • Chaque fenêtre utilise un processus de rendu séparé (moteur Chromium) → consommation mémoire élevée
    • Une intégration profonde avec le système nécessite des processus supplémentaires
  • Résumé de l’architecture de Tauri

    • Le backend est un binaire natif basé sur Rust → aucun runtime séparé requis
    • Utilise le WebView système (Windows : WebView2, macOS : WKWebView, Linux : WebKitGTK)
    • Bonne efficacité mémoire selon le nombre de fenêtres, mais nécessite de gérer les problèmes d’incohérence entre moteurs de navigateur

Comparaison des fonctionnalités clés

  • Le temps de démarrage est rapide à la fois pour Tauri et Electron, sans grande différence perceptible en pratique
  • En matière de consommation mémoire, Tauri est nettement plus sobre
    • Tauri utilisait environ 172MB de mémoire
    • Electron était à environ 409MB, soit une consommation de plus du double
  • Du point de vue du moteur de rendu
    • Tauri utilise le WebView intégré au système d’exploitation, ce qui permet une application légère et de petite taille
    • Electron embarque directement le moteur Chromium dans l’application, ce qui consomme davantage de ressources
  • Concernant le langage backend
    • Tauri utilise Rust, ce qui permet d’écrire du code natif haute performance
    • Electron repose sur JavaScript (Node.js), plus familier pour les développeurs web mais relativement moins performant
  • Pour le temps de build initial
    • Tauri inclut la compilation Rust, donc le build initial est plus lent
    • Electron, basé sur JS, a un build initial plus rapide
  • En comparaison de taille d’application
    • Tauri pèse environ 8.6MiB, ce qui le rend très léger
    • Electron pèse environ 244MiB, soit environ 28 fois plus

Les raisons décisives du choix de Tauri par Hopp

  • 1. Un backend Rust haute performance

    • Nécessité de mettre en œuvre un streaming vidéo à très faible latence basé sur WebRTC
    • Avec Electron, il faut lancer des processus séparés, alors qu’avec Tauri, cela peut être implémenté directement dans le backend Rust
  • 2. Prise en charge des processus sidecar

    • Le streaming et le traitement des entrées sont isolés dans des binaires distincts pour une gestion plus propre
    • Tauri prend officiellement en charge les sidecars → gestion simplifiée du cycle de vie et des communications
    • À l’avenir, une extension vers Tauri egui est aussi envisagée pour le rendu du curseur
  • 3. Un support fonctionnel qui évolue rapidement

    • Tauri v2 intègre des fonctions clés comme les mises à jour automatiques
    • Plus récent qu’Electron, mais sa vision centrée sur la sécurité et les performances correspond à celle de Hopp

Conclusion : quel framework est le meilleur ?

  • Electron et Tauri sont tous deux d’excellents frameworks pour applications desktop
  • Le choix peut varier selon la nature du projet
    • Electron : développement rapide, compatible JS, vaste écosystème
    • Tauri : plus petit, plus léger, plus rapide, et optimisé pour les performances grâce à Rust
  • Hopp a choisi Tauri en raison de sa stack technique orientée performances et du besoin d’une architecture avec processus séparés

6 commentaires

 
naratteu 2025-04-20

J’utilise webui. La taille est plus petite et il y a bien moins de dépendances à l’exécution.

 
sddsdd94 2025-04-16

Ce serait bien d’y inclure aussi Wails dans la comparaison.

 
secret3056 2025-04-16

J’ai plutôt l’impression qu’à l’inverse, dans la plupart des cas, Electron suffit.
C’est peut-être parce que je garde un mauvais souvenir des échanges back-end/front-end dans les débuts de Tauri...

 
softer 2025-04-16

Je pense que la différence de moteur de navigateur est un enjeu important, mais si l’on tient compte de la prise en charge, y compris sur mobile, cela paraît aussi moins déterminant.

 
pcj9024 2025-04-16

Si la taille de l’application est un enjeu majeur, alors il vaut clairement mieux partir sur Tauri.

 
wfedev 2026-01-16

Je vais devoir l’essayer pour voir si c’est un choix pertinent en termes de taille, de mémoire et de sidecar ! Merci pour la présentation.