Discord ersetzt Electron durch Rust und GPUI für schnellere, leichtgewichtige Desktop-Apps
Der neue, auf Rust basierende Client von Discord startet deutlich schneller und nutzt 70 % weniger RAM als sein Electron-Vorgänger, indem er das GPUI-Framework einsetzt.
Automatisch aus dem englischen Original übersetzt.
Discord hat einen großen architektonischen Wandel in seiner Windows 11 Desktop-Anwendung demonstriert: den Wechsel vom Electron-Framework zu einer nativen Implementierung, die mit Rust entwickelt wurde. In einem von Mitgründer und CTO Stanislav Vishnevskiy geteilten Side-by-Side-Vergleich lud der neue Client seine Oberfläche und die Freundesliste, bevor die alte Electron-App ihre anfängliche Startsequenz abgeschlossen hatte. Dieser Übergang unterstreicht einen wachsenden Trend bei Hochleistungsanwendungen, gebündelte Web-Engines zugunsten systemnaher Programmiersprachen aufzugeben.
Was passiert ist
Die Demonstration umfasste zwei Lenovo ThinkPads mit Windows 11, auf denen sowohl der aktuelle Electron-Client als auch der neue, auf Rust basierende Client aus einem Kaltstart heraus gestartet wurden. Das Video, das Millionen Aufrufe generierte, zeigte, wie die Electron-App mehrere Sekunden lang ein leeres Fenster und einen Ladehinweis anzeigte. Im Gegensatz dazu blendete sich der neue Client, im Task Manager als „Discord Phoenix“ identifiziert, innerhalb einer Sekunde ein und hatte die Freundesliste bereits vollständig geladen, während die alte Version noch initialisierte. Discord-Mitarbeiter bestätigten, dass keine der beiden Instanzen im Hintergrund lief oder über den System-Tray gestartet wurde, was den Geschwindigkeitsunterschied als Ergebnis der neuen Architektur validiert.
Über die Boot-Zeiten hinaus stellt die Ressourceneffizienz des neuen Clients eine erhebliche Verbesserung dar. Die Rust-Version verbrauchte nur 290,2 MB RAM, während sie zwei gleichzeitig angemeldete Konten unterstützte. Diese Zahl entspricht einer Reduzierung von etwa 70 % im Vergleich zur typischen Leerlaufnutzung von 1 GB beim Electron-Client. Das Unternehmen merkte an, dass frühere Versuche, den Electron-Build zu optimieren – wie etwa das Upgrade auf Electron 42 –, nur marginale CPU-Verbesserungen brachten, jedoch zu einer leicht erhöhten Speichernutzung führten. Der neue Ansatz eliminiert die Notwendigkeit des traditionellen „Starting“-Bildschirms, da automatische Hintergrund-Updates und schnelles Bootstrapping das Modalfenster obsolet machen.
Wie es funktioniert
Discord ersetzte die Chromium-basierte Electron-Runtime durch GPUI, ein GPU-beschleunigtes UI-Framework, das in Rust geschrieben ist. Im Gegensatz zu Electron, das für jede Anwendungsinstanz eine vollständige Browser-Engine und eine Node.js-Umgebung bündelt, zeichnet GPUI Interface-Elemente direkt auf der GPU unter Verwendung einer hybriden Strategie aus Immediate- und Retained-Mode-Rendering. Dies ermöglicht es der Anwendung, den Overhead durch das Parsen von HTML und CSS für Kern-UI-Komponenten zu umgehen. Rust verwaltet die Anwendungslogik und den Speicher ohne Garbage Collector, was deterministische Performance und geringeren Speicherbedarf gewährleistet.
Die Architektur unterscheidet sich von anderen Rust-basierten Frameworks wie Tauri, das weiterhin auf den Webview des Betriebssystems (wie WebView2 unter Windows) angewiesen ist, um HTML-Oberflächen zu rendern. Discords Implementierung vermeidet Web-Technologien für die Haupt-Shell vollständig, nutzt jedoch weiterhin den nativen System-Webview für spezifische eingebettete Inhalte wie YouTube-Videos und Activities. Dieser hybride Ansatz stellt sicher, dass komplexe webbasierte Integrationen funktionsfähig bleiben, während die primäre Benutzeroberfläche von nativen Rendering-Geschwindigkeiten profitiert. Dieselbe Rust-Codebasis wird für mobile Plattformen adaptiert, ersetzt React Native auf iOS und Android und wird die Logik des Web-Clients über WebAssembly antreiben.
Wichtige Details
- Der neue Rust-Client nutzt etwa 290,2 MB RAM bei zwei aktiven Konten, verglichen mit 1–2 GB für die Electron-Version.
- Die Boot-Zeit ist erheblich reduziert; der neue Client lädt die Freundesliste, bevor die Electron-App ihre Startanimation beendet.
- Discord nutzt GPUI, ein Rust-UI-Framework der Macher des Zed Code Editors, anstelle von Tauri oder WinUI.
- Die Anwendung unterstützt gleichzeitiges Multi-Account-Login, ohne dass der Client zwischen den Wechseln heruntergefahren und neu gestartet werden muss.
- Updates werden im Hintergrund verarbeitet, wodurch das „Starting“-Modal, das beim Start nach Updates sucht, entfällt.
- Der neue Client speichert Login-Tokens im System-Keyring, wie dem Credential Manager unter Windows, zur verbesserten Sicherheit.
Warum das wichtig ist
Für Software-Ingenieure und technische Leads validiert diese Migration die Tragfähigkeit von Rust und benutzerdefinierten UI-Frameworks für große Consumer-Anwendungen. Sie stellt die lange gehegte Annahme infrage, dass Electron der einzige praktische Weg sei, um plattformübergreifende Parität mit einer einzigen Codebasis zu gewährleisten. Indem Discord zeigt, dass eine komplexe, funktionsreiche Chat-Anwendung native Performance und niedrigen Speicherverbrauch erreichen kann, ohne die Entwicklungsgeschwindigkeit zu opfern, bietet es einen Blaupausenansatz für andere Teams, die mit dem Aufblähen webbasierter Desktop-Wrapper kämpfen.
Der Wandel reagiert auch auf breitere Branchenherausforderungen hinsichtlich der Hardware-Ressourcenbeschränkungen. Mit steigenden Speicherpreisen und Lieferengpässen in Rechenzentren wird effizientes Softwaredesign zunehmend zum Wettbewerbsvorteil und nicht mehr nur zu einer technischen Feinheit. Anwendungen, die sich zuvor auf die Verfügbarkeit von billigem RAM verlassen konnten, sind nun gezwungen zu optimieren. Discords Schritt signalisiert, dass Nutzer und Entwickler alike einen Kipppunkt erreichen, an dem der Komfort von Web-Technologien die Leistungseinbußen nicht mehr rechtfertigt, insbesondere bei Always-on-Kommunikationstools.
Was Sie tun können
- Evaluieren Sie, ob die Kern-UI Ihrer Desktop-Anwendung wirklich HTML/CSS-Rendering erfordert oder ob ein natives GPU-beschleunigtes Framework den Overhead reduzieren könnte.
- Untersuchen Sie Rust-basierte UI-Toolkits wie GPUI oder Iced, wenn Sie den Speicherfußabdruck verringern und die Startzeiten verbessern möchten.
- Profilieren Sie die Speichernutzung Ihrer aktuellen Electron-Anwendung, um festzustellen, ob gebündelte Chromium-Instanzen unverhältnismäßig viele Ressourcen verbrauchen.
- Erwägen Sie die Implementierung von Hintergrund-Update-Mechanismen, um blockierende Start-Modals zu entfernen und die wahrgenommene Performance zu verbessern.
- Erkunden Sie WebAssembly, um Geschäftslogik zwischen Web- und nativen Clients zu teilen, was eine einheitliche Codebasis ohne einheitliches UI-Rendering ermöglicht.
- Beobachten Sie die öffentliche Veröffentlichung von Discords neuem Client, um reale Leistungssteigerungen gegen Ihre eigenen internen Metriken zu benchmarken.



