23 pontos por xguru 2025-04-16 | 6 comentários | Compartilhar no WhatsApp
  • Durante o desenvolvimento de um app de controle remoto de ultrabaixa latência para programação em par remota, a equipe adotou o Tauri como framework do app
    • Os motivos da escolha incluem desempenho, eficiência de memória e suporte a sidecar
  • Com backend baseado em Rust + WebView do sistema, o tamanho do app e o uso de memória são muito menores do que no Electron
  • No Tauri v2, a diferença de recursos também está sendo reduzida rapidamente, com funções essenciais como atualizações automáticas e sidecar já integradas
  • O Electron continua poderoso, mas para os requisitos específicos do Hopp, o Tauri foi mais adequado

Por que o Hopp escolheu o Tauri

Contexto: escolhendo um framework de app cross-platform

  • O Hopp precisava de um app desktop de alto desempenho que funcionasse da mesma forma em Windows, macOS e Linux
  • Electron e Tauri são opções representativas, e cada um tem vantagens e desvantagens bem definidas
  • A equipe do Hopp fez a escolha priorizando manutenibilidade de longo prazo e performance

Tauri vs. Electron: diferenças estruturais

  • Estrutura do Electron

    • É necessário incluir o runtime do Node.js → aumento no tamanho do app
    • Cada janela usa um processo de renderização separado (engine Chromium) → alto consumo de memória
    • A integração profunda com o sistema exige processos separados
  • Resumo da estrutura do Tauri

    • O backend é um binário nativo baseado em Rust → não requer runtime separado
    • Usa o WebView do sistema (Windows: WebView2, macOS: WKWebView, Linux: WebKitGTK)
    • Tem boa eficiência de memória conforme o número de janelas, embora seja preciso gerenciar problemas de inconsistência entre engines de navegador

Comparação dos principais recursos

  • O tempo de inicialização é rápido tanto no Tauri quanto no Electron, sem grande diferença perceptível
  • Em uso de memória, o Tauri consome bem menos
    • O Tauri usou cerca de 172MB de memória
    • O Electron ficou em cerca de 409MB, consumindo mais do que o dobro de memória
  • Do ponto de vista da engine de renderização
    • O Tauri usa o WebView embutido no sistema operacional, deixando o app menor e mais leve
    • O Electron inclui a engine Chromium diretamente no app, usando mais recursos
  • Quanto à linguagem de backend
    • O Tauri usa Rust, permitindo escrever código nativo de alto desempenho
    • O Electron é baseado em JavaScript (Node.js), familiar para desenvolvedores web, mas com desempenho relativamente inferior
  • Em relação ao tempo de build inicial
    • O Tauri inclui compilação Rust, então o build inicial é mais lento
    • O Electron, por ser baseado em JS, tem build inicial mais rápido
  • Na comparação de tamanho do app
    • O Tauri tem cerca de 8.6MiB, sendo muito leve
    • O Electron tem cerca de 244MiB, ou seja, é cerca de 28 vezes maior

Os motivos decisivos para o Hopp escolher o Tauri

  • 1. Backend Rust de alto desempenho

    • Era necessário implementar streaming de vídeo de ultrabaixa latência baseado em WebRTC
    • No Electron, seria preciso iniciar um processo separado, mas no Tauri isso pode ser implementado diretamente no backend Rust
  • 2. Suporte a processos sidecar

    • O streaming e o tratamento de entrada são separados em binários independentes para gerenciamento
    • O Tauri oferece suporte oficial a sidecar → gerenciamento de ciclo de vida e comunicação mais simples
    • No futuro, a equipe também considera expandir para Tauri egui para renderização de cursor
  • 3. Suporte a recursos que evolui rapidamente

    • O Tauri v2 já inclui recursos essenciais, como atualizações automáticas
    • Embora seja mais novo que o Electron, sua visão centrada em segurança e desempenho combina com o Hopp

Conclusão: qual framework é melhor?

  • Electron e Tauri são excelentes frameworks para apps desktop
  • A escolha pode variar conforme a natureza do projeto
    • Electron: desenvolvimento rápido, amigável para JS, ecossistema amplo
    • Tauri: menor, mais leve, mais rápido e otimizado para performance com base em Rust
  • O Hopp adotou o Tauri porque precisava de uma stack centrada em performance e de uma arquitetura com processos separados

6 comentários

 
naratteu 2025-04-20

Eu uso webui. O tamanho também é pequeno e há bem menos dependências de runtime.

 
sddsdd94 2025-04-16

Seria bom incluir uma comparação com o Wails também

 
secret3056 2025-04-16

A impressão que fica para mim é a contrária: na maioria dos casos, o Electron já é suficiente.
Talvez porque eu tenha ficado com a lembrança de que a experiência de comunicação entre back-end e front-end no começo do Tauri não era muito boa...

 
softer 2025-04-16

Parece que a diferença no motor do navegador é uma questão grande, mas, considerando o suporte incluindo mobile, também acaba parecendo pequena.

 
pcj9024 2025-04-16

Se o problema do tamanho do app for grande, então faz sentido ir de Tauri sem pensar duas vezes.

 
wfedev 2026-01-16

Pelo tamanho, uso de memória e sidecar, acho que vou ter que experimentar para ver se é a escolha certa! Obrigado pela apresentação.