23 Punkte von xguru 2025-04-16 | 6 Kommentare | Auf WhatsApp teilen
  • Bei der Entwicklung einer Remote-Control-App mit extrem niedriger Latenz für Remote-Pair-Programming wurde Tauri als App-Framework gewählt
    • Gründe für die Wahl waren unter anderem Performance, Speichereffizienz und Sidecar-Support
  • Durch ein Rust-basiertes Backend und die Nutzung des System-WebView sind App-Größe und Speicherverbrauch im Vergleich zu Electron deutlich kleiner
  • Mit Tauri v2 wird auch die Funktionslücke schnell geschlossen, zentrale Features wie Auto-Updates und Sidecars sind integriert
  • Electron ist weiterhin leistungsfähig, aber für die speziellen Anforderungen von Hopp ist Tauri besser geeignet

Warum sich Hopp für Tauri entschieden hat

Hintergrund: Wahl eines Cross-Platform-App-Frameworks

  • Hopp benötigt eine hochperformante Desktop-App, die unter Windows, macOS und Linux identisch funktioniert
  • Electron und Tauri sind dabei die wichtigsten Optionen, jeweils mit klaren Vor- und Nachteilen
  • Das Hopp-Team traf die Wahl mit Fokus auf langfristige Wartbarkeit und Performance

Tauri vs. Electron: strukturelle Unterschiede

  • Electron-Architektur

    • Enthält zwingend eine Node.js-Laufzeit → größere App-Größe
    • Jedes Fenster nutzt einen separaten Renderer-Prozess (Chromium-Engine) → hoher Speicherverbrauch
    • Für eine tiefe Systemintegration sind zusätzliche Prozesse erforderlich
  • Tauri-Architektur im Überblick

    • Das Backend ist ein nativer Binärcode auf Rust-Basis → keine separate Laufzeit nötig
    • Verwendet den System-WebView (Windows: WebView2, macOS: WKWebView, Linux: WebKitGTK)
    • Gute Speichereffizienz je nach Anzahl der Fenster, allerdings müssen Probleme durch unterschiedliche Browser-Engines gemanagt werden

Vergleich zentraler Funktionen

  • Die Startzeit ist bei Tauri und Electron in beiden Fällen schnell, subjektiv gibt es keinen großen Unterschied
  • Beim Speicherverbrauch liegt Tauri deutlich vorn
    • Tauri nutzte etwa 172MB Speicher
    • Electron lag bei etwa 409MB und verbrauchte damit mehr als doppelt so viel Speicher
  • Hinsichtlich der Rendering-Engine gilt
    • Tauri nutzt den im Betriebssystem integrierten WebView, wodurch die App klein und leichtgewichtig bleibt
    • Electron liefert die Chromium-Engine direkt mit der App aus und benötigt dadurch mehr Ressourcen
  • Bei der Backend-Sprache gilt
    • Tauri verwendet Rust, wodurch sich nativer Hochleistungs-Code schreiben lässt
    • Electron basiert auf JavaScript (Node.js), was Webentwicklern vertraut ist, aber relativ geringere Performance bietet
  • Die anfängliche Build-Zeit ist
    • bei Tauri durch die Rust-Kompilierung langsamer beim ersten Build
    • bei Electron auf JS-Basis schneller beim ersten Build
  • Beim Vergleich der App-Größe
    • kommt Tauri auf nur etwa 8.6MiB und ist damit sehr leichtgewichtig
    • Electron liegt bei etwa 244MiB und ist damit rund 28-mal größer

Die entscheidenden Gründe für Hopps Wahl von Tauri

  • 1. Hochperformantes Rust-Backend

    • Es musste WebRTC-basiertes Video-Streaming mit extrem niedriger Latenz umgesetzt werden
    • Unter Electron wäre dafür ein separater Prozess nötig, mit Tauri lässt sich dies direkt im Rust-Backend implementieren
  • 2. Unterstützung für Sidecar-Prozesse

    • Streaming und Eingabeverarbeitung werden in separate Binärdateien ausgelagert und so verwaltet
    • Tauri unterstützt Sidecars offiziell → Lebenszyklus und Kommunikation lassen sich einfach verwalten
    • Für künftiges Cursor-Rendering wird auch eine Erweiterung in Richtung Tauri egui erwogen
  • 3. Schnell weiterentwickelte Feature-Unterstützung

    • Tauri v2 integriert zentrale Funktionen wie Auto-Updates bereits nativ
    • Im Vergleich zu Electron ist es zwar jünger, doch die auf Sicherheit und Performance ausgerichtete Vision passt zu Hopp

Fazit: Welches Framework ist besser?

  • Sowohl Electron als auch Tauri sind hervorragende Frameworks für Desktop-Apps
  • Welche Wahl besser ist, hängt vom Charakter des Projekts ab
    • Electron: schnelle Entwicklung, JS-freundlich, breites Ökosystem
    • Tauri: kleiner, leichter, schneller und auf Rust-basierte Performance optimiert
  • Hopp entschied sich für Tauri, weil ein auf Performance ausgerichteter Tech-Stack und eine Architektur mit separaten Prozessen benötigt wurden

6 Kommentare

 
naratteu 2025-04-20

Ich nutze webui. Es ist kompakt und hat deutlich weniger Laufzeitabhängigkeiten.

 
sddsdd94 2025-04-16

Ein Vergleich mit Wails wäre auch gut.

 
secret3056 2025-04-16

Für mich liest es sich eher so, als würde in den meisten Fällen Electron ausreichen.
Vielleicht liegt das auch daran, dass ich die frühen Erfahrungen mit der Backend-Frontend-Kommunikation in Tauri nicht besonders gut in Erinnerung habe...

 
softer 2025-04-16

Man denkt zwar, dass der Unterschied bei den Browser-Engines ein großes Thema ist, aber wenn man die Unterstützung einschließlich Mobile mitbedenkt, wirkt er auch wieder kleiner.

 
pcj9024 2025-04-16

Wenn die App-Größe ein großes Problem ist, dann ist es auf jeden Fall richtig, sich für Tauri zu entscheiden.

 
wfedev 2026-01-16

Ich sollte wohl selbst einmal ausprobieren, ob es in Bezug auf Größe, Speicherverbrauch und Sidecars die richtige Wahl ist! Danke für die Einführung.