Tauri vs Electron pour les clients Git : un benchmark de performance
La plupart des clients Git desktop multiplateformes sont construits sur Electron : GitKraken, GitHub Desktop, GitFiend. GitSquid est l'un des rares construits sur Tauri. Le choix du framework est invisible pour les utilisateurs finaux, mais il conditionne l'usage RAM, la taille d'installation, le temps de démarrage à froid et le CPU au repos. Cet article met des chiffres sur ces différences.
Transparence : cet article est publié sur le site de GitSquid, qui est construit sur Tauri. Nous avons essayé de mesurer honnêtement — les chiffres ci-dessous sont reproductibles.
Pourquoi le framework compte pour un Git GUI
Les Git GUI tournent pendant des heures. Ce sont des outils en arrière-plan que vous gardez ouverts pendant que votre éditeur et votre navigateur ont le focus. Leur empreinte ressources s'accumule : un client Git qui utilise 400 Mo de RAM est correct isolément, mais sur une machine 16 Go qui fait aussi tourner un éditeur, un navigateur, Slack, Docker et quelques language servers, chaque Mo en arrière-plan compte.
Le choix du framework impacte :
- La taille d'installation — combien de disque l'application occupe.
- Le démarrage à froid — combien de temps entre le lancement de l'app et la première vue du dépôt.
- La RAM au repos — combien de mémoire l'app tient quand vous avez un dépôt ouvert mais sans interaction active.
- Le CPU au repos — si l'app fait tourner le ventilateur quand vous passez le focus sur votre éditeur.
Comment Electron et Tauri diffèrent architecturalement
Electron embarque un navigateur Chromium complet plus un runtime Node.js avec chaque application. Chaque app est un navigateur complet. L'avantage : un rendu déterministe — la même version de Chromium partout. L'inconvénient : chaque app livre ~150 Mo de binaires Chromium.
Tauri utilise le webview existant du système d'exploitation — WKWebView sur macOS, WebView2 sur Windows, WebKitGTK sur Linux. La logique applicative écrite en Rust parle au JavaScript dans le webview à travers une fine couche IPC. L'avantage : binaire minuscule, RAM basse, démarrage à froid rapide. L'inconvénient : le rendu peut varier légèrement entre plateformes parce que chaque OS a un moteur webview différent.
Méthodologie
Nous avons benchmarké quatre clients Git sur la même machine (MacBook Pro M2, 16 Go RAM, macOS 15) avec le même dépôt de taille moyenne ouvert (le repo source de GitSquid, ~600 commits, ~150 fichiers). Pour chaque app :
- Taille d'installation : mesurée avec `du -sh /Applications/<App>.app`
- Démarrage à froid : tué l'app, lancée, démarré un chronomètre, arrêté quand le dépôt était visible et interactif.
- RAM au repos : ouvert le repo, attendu 30 secondes, enregistré `ps -o rss` pour le processus principal et tous les processus helper. Sommé.
- CPU au repos : échantillonné `top` sur 60 secondes avec l'app focalisée mais sans interaction utilisateur.
Les chiffres varient selon les machines et les versions d'OS, mais les ratios restent constants. Reproduisez sur votre matériel pour vérifier.
Résultats
| Outil | Framework | Taille d'installation | Démarrage à froid | RAM au repos | CPU au repos |
|---|---|---|---|---|---|
| GitSquid | Tauri 2.x / Rust | ~25 Mo | ~0,7 s | ~180 Mo | <1 % |
| GitKraken | Electron | ~300 Mo | ~3,5 s | ~750 Mo | 2-5 % |
| GitHub Desktop | Electron | ~200 Mo | ~2,0 s | ~450 Mo | 1-3 % |
| Fork (à titre indicatif) | Natif (Cocoa) | ~50 Mo | ~0,5 s | ~150 Mo | <1 % |
Deux enseignements :
- GitSquid basé sur Tauri joue dans la même cour que Fork natif sur chaque métrique. L'architecture basée webview est 4 à 5 fois plus légère qu'Electron sur la taille d'installation et 2 à 4 fois plus légère sur la RAM.
- Les clients basés sur Electron paient un surcoût substantiel en taille d'installation (10x plus que Tauri), en RAM (3-4x plus que Tauri) et en démarrage à froid (3-5x plus lent). C'est vrai pour GitKraken comme pour GitHub Desktop — c'est le coût du framework, pas un problème spécifique à une app.
Ce que ça signifie en pratique
Taille d'installation
Sur le disque, un client Git Electron prend grosso modo le même espace que 10 installations de GitSquid. Si vous gardez plusieurs clients Git installés (la plupart d'entre nous le font pendant l'évaluation), ça compte. Sur les laptops avec des SSD de 256 Go, chaque Go libéré a de la valeur.
Démarrage à froid
La différence de 3 secondes entre GitSquid et GitKraken paraît anodine. Multipliée par le nombre de fois où vous lancez votre client Git chaque jour (typiquement 5 à 15), ça représente une minute par jour — environ 4 heures par an — passées à fixer un écran de chargement.
RAM au repos
La différence de 570 Mo entre GitSquid et GitKraken est le chiffre clé pour les machines à mémoire contrainte. Sur un MacBook 16 Go avec la configuration habituelle éditeur + navigateur + Slack + Docker, c'est la différence entre "il me reste 1,5 Go libre" et "je swap". Le swap ralentit tout, pas seulement le client Git.
CPU au repos
C'est la métrique que vous ressentez dans le bruit du ventilateur. Les apps Electron tiennent souvent un peu de CPU en arrière-plan même au repos (processus renderer, compositeur GPU, etc.). Sur un laptop fanless ou un Mac qui chauffe, même quelques pourcents font la différence entre silencieux et audiblement en marche.
Les compromis
Tauri n'est pas exempt d'inconvénients. La liste honnête :
- Cohérence du webview. Chaque OS utilise un moteur webview différent. La plupart du CSS / JS fonctionne identiquement, mais certaines fonctionnalités très avancées (quelques cas limites de flexbox, certains détails de rendu de polices) peuvent différer entre plateformes. Nous en avons rencontré et contourné 2-3 dans la vie de GitSquid.
- Complexité du bundling. Tauri exige la toolchain Rust sur la machine de chaque développeur. Electron n'exige que Node. Pour un Git GUI construit par une petite équipe, c'est acceptable ; pour un projet hobby, ça ajoute du frottement.
- Communauté plus petite. Electron a 10+ ans de ressources, bibliothèques et réponses Stack Overflow. L'écosystème Tauri est plus jeune mais grandit vite.
Pour les clients Git en particulier, aucun de ces inconvénients n'est visible pour les utilisateurs finaux. Le bénéfice (empreinte plus faible, démarrage plus rapide, moins de mémoire) l'est.
Pourquoi plus de clients Git n'utilisent-ils pas Tauri ?
Deux raisons :
- Inertie. GitKraken a démarré avant que Tauri n'existe. GitHub Desktop a démarré avant que Tauri ne soit prêt pour la production. Re-platformer un produit mature coûte cher — nous le savons, GitSquid a fait exactement ça d'Electron à Tauri en v2.0 (2026-04-11).
- Tauri est plus jeune. Tauri 1.0 est sorti en 2022, Tauri 2.0 en 2024. Pour un produit établi, parier sur un framework plus jeune est un vrai risque. Pour un nouveau produit comme GitSquid, le compromis est plus favorable.
Essayez vous-même
Les chiffres dans cet article sont reproductibles. Installez GitSquid et n'importe quel client Git basé sur Electron, ouvrez le même dépôt dans les deux, et regardez les stats de votre machine. La différence est généralement visible sans mesure.
Téléchargez GitSquid et voyez les chiffres sur votre matériel.