Tauri vs Electron para clientes Git: un benchmark de rendimiento
La mayoría de los clientes Git de escritorio multiplataforma están construidos sobre Electron: GitKraken, GitHub Desktop, GitFiend. GitSquid es uno de los pocos construidos sobre Tauri. La elección del framework es invisible para los usuarios finales, pero condiciona el uso de RAM, el tamaño de instalación, el tiempo de arranque en frío y el CPU en reposo. Este artículo pone cifras a esas diferencias.
Transparencia: este artículo se publica en el sitio de GitSquid, que está construido sobre Tauri. Hemos intentado medir honestamente — las cifras de abajo son reproducibles.
Por qué importa el framework para una GUI de Git
Las GUI de Git se ejecutan durante horas. Son herramientas en segundo plano que mantienes abiertas mientras tu editor y navegador tienen el foco. Su huella de recursos se acumula: un cliente Git que usa 400 MB de RAM está bien aislado, pero en una máquina de 16 GB que también ejecuta un editor, navegador, Slack, Docker y unos cuantos language servers, cada MB extra en segundo plano cuenta.
La elección del framework impacta:
- Tamaño de instalación — cuánto disco ocupa la aplicación.
- Arranque en frío — cuánto tarda desde lanzar la app hasta ver el primer repositorio.
- RAM en reposo — cuánta memoria mantiene la app cuando tienes un repositorio abierto pero no estás interactuando activamente.
- CPU en reposo — si la app hace girar el ventilador cuando cambias el foco a tu editor.
En qué se diferencian arquitectónicamente Electron y Tauri
Electron empaqueta un navegador Chromium completo más un runtime Node.js con cada aplicación. Cada app es un navegador completo. La ventaja: renderizado determinista — la misma versión de Chromium en todas partes. La desventaja: cada app envía ~150 MB de binarios de Chromium.
Tauri usa el webview existente del sistema operativo — WKWebView en macOS, WebView2 en Windows, WebKitGTK en Linux. La lógica de la aplicación escrita en Rust se comunica con JavaScript en el webview a través de una capa IPC ligera. La ventaja: binario diminuto, RAM baja, arranque en frío rápido. La desventaja: el renderizado puede variar ligeramente entre plataformas porque cada SO tiene un motor webview distinto.
Metodología
Hicimos benchmark a cuatro clientes Git en la misma máquina (MacBook Pro M2, 16 GB de RAM, macOS 15) con el mismo repositorio mediano abierto (el repo fuente de GitSquid, ~600 commits, ~150 archivos). Para cada app:
- Tamaño de instalación: medido con `du -sh /Applications/<App>.app`
- Arranque en frío: matamos la app, la lanzamos, iniciamos cronómetro, lo detuvimos cuando el repositorio era visible e interactivo.
- RAM en reposo: abrimos el repo, esperamos 30 segundos, registramos `ps -o rss` para el proceso principal y todos los procesos auxiliares. Sumado.
- CPU en reposo: muestreamos `top` durante 60 segundos con la app enfocada pero sin interacción del usuario.
Los números varían entre máquinas y versiones de SO, pero las proporciones permanecen consistentes. Reproduce en tu hardware para verificar.
Resultados
| Herramienta | Framework | Tamaño de instalación | Arranque en frío | RAM en reposo | CPU en reposo |
|---|---|---|---|---|---|
| GitSquid | Tauri 2.x / Rust | ~25 MB | ~0,7 s | ~180 MB | <1 % |
| GitKraken | Electron | ~300 MB | ~3,5 s | ~750 MB | 2-5 % |
| GitHub Desktop | Electron | ~200 MB | ~2,0 s | ~450 MB | 1-3 % |
| Fork (como referencia) | Nativo (Cocoa) | ~50 MB | ~0,5 s | ~150 MB | <1 % |
Dos conclusiones:
- GitSquid basado en Tauri está en la misma liga que el Fork nativo en cada métrica. La arquitectura basada en webview es 4-5 veces más ligera que Electron en tamaño de instalación y 2-4 veces en RAM.
- Los clientes basados en Electron pagan un sobrecoste sustancial en tamaño de instalación (10x más que Tauri), RAM (3-4x más que Tauri) y arranque en frío (3-5x más lento). Esto es cierto tanto para GitKraken como para GitHub Desktop — es el coste del framework, no un problema específico de la app.
Lo que esto significa en la práctica
Tamaño de instalación
En disco, un cliente Git de Electron ocupa aproximadamente el mismo espacio que 10 instalaciones de GitSquid. Si mantienes varios clientes Git instalados (la mayoría lo hacemos durante la evaluación), esto importa. En portátiles con SSD de 256 GB, cada GB liberado tiene valor.
Arranque en frío
La diferencia de 3 segundos entre GitSquid y GitKraken parece trivial. Multiplicado por las veces que lanzas tu cliente Git al día (típicamente 5-15), suma a un minuto al día — unas 4 horas al año — mirando una pantalla de carga.
RAM en reposo
La diferencia de 570 MB entre GitSquid y GitKraken es la cifra clave para máquinas con memoria limitada. En un MacBook de 16 GB con la configuración habitual de editor + navegador + Slack + Docker, esa es la diferencia entre "me quedan 1,5 GB libres" y "estoy haciendo swap". El swap ralentiza todo, no solo el cliente Git.
CPU en reposo
Esta es la métrica que sientes en el ruido del ventilador. Las apps de Electron a menudo retienen una pequeña cantidad de CPU en segundo plano incluso en reposo (procesos renderer, compositor de GPU, etc.). En un portátil sin ventilador o un Mac que se calienta, incluso unos pocos puntos porcentuales hacen la diferencia entre silencioso y audible.
Las contrapartidas
Tauri no está libre de inconvenientes. La lista honesta:
- Consistencia del webview. Cada SO usa un motor webview distinto. La mayor parte del CSS / JS funciona idénticamente, pero algunas funciones muy avanzadas (algunos casos límite de flexbox, ciertos detalles del renderizado de fuentes) pueden diferir entre plataformas. Hemos topado y rodeado 2-3 de estos en la vida de GitSquid.
- Complejidad de empaquetado. Tauri requiere la toolchain de Rust en cada máquina de desarrollo. Electron solo requiere Node. Para una GUI de Git construida por un equipo pequeño, es aceptable; para un proyecto hobby, añade fricción.
- Comunidad más pequeña. Electron tiene 10+ años de recursos, librerías y respuestas en Stack Overflow. El ecosistema de Tauri es más joven pero crece rápido.
Específicamente para clientes Git, ninguna de estas desventajas es visible para los usuarios finales. El beneficio (menor huella, arranque más rápido, menos memoria) sí lo es.
¿Por qué no más clientes Git usan Tauri?
Dos razones:
- Inercia. GitKraken empezó antes de que existiera Tauri. GitHub Desktop empezó antes de que Tauri estuviera listo para producción. Re-plataformar un producto maduro es caro — lo sabemos, GitSquid hizo exactamente eso de Electron a Tauri en v2.0 (2026-04-11).
- Tauri es más joven. Tauri 1.0 salió en 2022, Tauri 2.0 en 2024. Para un producto establecido, apostar por un framework más joven es un riesgo real. Para un producto nuevo como GitSquid, la contrapartida es más favorable.
Pruébalo tú mismo
Las cifras de este artículo son reproducibles. Instala tanto GitSquid como cualquier cliente Git basado en Electron, abre el mismo repositorio en ambos y observa las estadísticas de tu máquina. La diferencia suele ser visible sin necesidad de medir.
Descarga GitSquid y mira las cifras en tu hardware.