Tauri vs Electron para clientes Git: um benchmark de performance
A maioria dos clientes Git desktop multiplataforma é construída sobre Electron: GitKraken, GitHub Desktop, GitFiend. GitSquid é um dos poucos construídos sobre Tauri. A escolha do framework é invisível para os usuários finais, mas condiciona o uso de RAM, o tamanho da instalação, o tempo de inicialização a frio e a CPU em repouso. Este artigo coloca números nessas diferenças.
Transparência: este artigo é publicado no site do GitSquid, que é construído sobre Tauri. Tentamos medir honestamente — os números abaixo são reproduzíveis.
Por que o framework importa para uma GUI Git
As GUIs Git rodam por horas. São ferramentas de segundo plano que você mantém abertas enquanto seu editor e navegador têm o foco. A pegada de recursos delas se acumula: um cliente Git que usa 400 MB de RAM está bem isoladamente, mas em uma máquina de 16 GB que também roda um editor, navegador, Slack, Docker e alguns language servers, cada MB extra em segundo plano importa.
A escolha do framework impacta:
- Tamanho de instalação — quanto disco a aplicação ocupa.
- Inicialização a frio — quanto tempo do lançamento da app até ver o primeiro repositório.
- RAM em repouso — quanta memória a app retém quando você tem um repositório aberto mas não está interagindo ativamente.
- CPU em repouso — se a app faz a ventoinha girar quando você muda o foco para o editor.
Como Electron e Tauri diferem arquiteturalmente
Electron empacota um navegador Chromium completo mais um runtime Node.js com cada aplicação. Cada app é um navegador completo. A vantagem: renderização determinística — a mesma versão do Chromium em todo lugar. A desvantagem: cada app entrega ~150 MB de binários do Chromium.
Tauri usa o webview existente do sistema operacional — WKWebView no macOS, WebView2 no Windows, WebKitGTK no Linux. A lógica da aplicação escrita em Rust se comunica com o JavaScript no webview através de uma camada IPC fina. A vantagem: binário minúsculo, RAM baixa, inicialização a frio rápida. A desvantagem: a renderização pode variar ligeiramente entre plataformas porque cada SO tem um motor webview diferente.
Metodologia
Fizemos benchmark de quatro clientes Git na mesma máquina (MacBook Pro M2, 16 GB de RAM, macOS 15) com o mesmo repositório de tamanho médio aberto (o repo fonte do GitSquid, ~600 commits, ~150 arquivos). Para cada app:
- Tamanho de instalação: medido com `du -sh /Applications/<App>.app`
- Inicialização a frio: matamos a app, lançamos, iniciamos cronômetro, paramos quando o repositório estava visível e interativo.
- RAM em repouso: abrimos o repo, esperamos 30 segundos, registramos `ps -o rss` para o processo principal e todos os processos auxiliares. Somado.
- CPU em repouso: amostramos `top` por 60 segundos com a app em foco mas sem interação do usuário.
Os números variam entre máquinas e versões de SO, mas as proporções permanecem consistentes. Reproduza no seu hardware para verificar.
Resultados
| Ferramenta | Framework | Tamanho de instalação | Inicialização a frio | RAM em repouso | CPU em repouso |
|---|---|---|---|---|---|
| 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 referência) | Nativo (Cocoa) | ~50 MB | ~0,5 s | ~150 MB | <1 % |
Duas conclusões:
- O GitSquid baseado em Tauri está na mesma liga do Fork nativo em cada métrica. A arquitetura baseada em webview é 4-5 vezes mais leve que Electron no tamanho de instalação e 2-4 vezes na RAM.
- Os clientes baseados em Electron pagam um sobrecusto substancial em tamanho de instalação (10x mais que Tauri), RAM (3-4x mais que Tauri) e inicialização a frio (3-5x mais lenta). Isso é verdade tanto para GitKraken quanto para GitHub Desktop — é o custo do framework, não um problema específico da app.
O que isso significa na prática
Tamanho de instalação
No disco, um cliente Git Electron ocupa aproximadamente o mesmo espaço que 10 instalações de GitSquid. Se você mantém vários clientes Git instalados (a maioria de nós faz isso durante a avaliação), isso importa. Em laptops com SSDs de 256 GB, cada GB liberado tem valor.
Inicialização a frio
A diferença de 3 segundos entre GitSquid e GitKraken parece trivial. Multiplicada pelo número de vezes que você lança seu cliente Git por dia (tipicamente 5-15), soma a um minuto por dia — cerca de 4 horas por ano — gastas olhando uma tela de carregamento.
RAM em repouso
A diferença de 570 MB entre GitSquid e GitKraken é o número-chave para máquinas com memória limitada. Em um MacBook de 16 GB com a configuração usual de editor + navegador + Slack + Docker, essa é a diferença entre "tenho 1,5 GB livre" e "estou fazendo swap". O swap deixa tudo mais lento, não só o cliente Git.
CPU em repouso
Esta é a métrica que você sente no barulho da ventoinha. Apps Electron frequentemente retêm um pouco de CPU em segundo plano mesmo em repouso (processos renderer, compositor de GPU, etc.). Em um laptop sem ventoinha ou um Mac que esquenta, mesmo poucos pontos percentuais fazem a diferença entre silencioso e audível.
As contrapartidas
Tauri não é livre de desvantagens. A lista honesta:
- Consistência do webview. Cada SO usa um motor webview diferente. A maior parte do CSS / JS funciona identicamente, mas algumas funcionalidades muito avançadas (alguns casos extremos de flexbox, certos detalhes da renderização de fontes) podem diferir entre plataformas. Encontramos e contornamos 2-3 desses ao longo da vida do GitSquid.
- Complexidade de empacotamento. Tauri exige a toolchain Rust em cada máquina de desenvolvedor. Electron exige apenas Node. Para uma GUI Git construída por uma equipe pequena, isso é aceitável; para um projeto hobby, adiciona atrito.
- Comunidade menor. Electron tem 10+ anos de recursos, bibliotecas e respostas no Stack Overflow. O ecossistema do Tauri é mais novo mas cresce rápido.
Especificamente para clientes Git, nenhuma dessas desvantagens é visível para os usuários finais. O benefício (pegada menor, inicialização mais rápida, menos memória) é.
Por que mais clientes Git não usam Tauri?
Duas razões:
- Inércia. GitKraken começou antes do Tauri existir. GitHub Desktop começou antes do Tauri estar pronto para produção. Re-plataformar um produto maduro é caro — sabemos disso, o GitSquid fez exatamente isso de Electron para Tauri na v2.0 (2026-04-11).
- Tauri é mais novo. Tauri 1.0 saiu em 2022, Tauri 2.0 em 2024. Para um produto estabelecido, apostar em um framework mais novo é um risco real. Para um produto novo como o GitSquid, a contrapartida é mais favorável.
Experimente você mesmo
Os números deste artigo são reproduzíveis. Instale tanto o GitSquid quanto qualquer cliente Git baseado em Electron, abra o mesmo repositório nos dois e observe as estatísticas da sua máquina. A diferença geralmente é visível sem necessidade de medição.
Baixe o GitSquid e veja os números no seu hardware.