November 2026

Electron to GPU-drawn Rust.

Every way to run a Discord client, ranked on memory and click speed. GPUI comes out fastest. Discord picked it too.

4 GBDiscord's own restart limit on Windows
290 MBDiscord's Rust + GPUI build, early
109 → 40 msV1 Client clicks after tonight's fixes
~16 msa GPUI click: one frame at 60 Hz

Memory

Log scale. Each step right is ten times more RAM.

ElectronWeb wrapperV1 ClientNative C++/QtRust + GPUIMeasuredReportedEstimate

Same app, two shells

One app, six windows, Hopp's 2025 benchmark. Tauri uses the system webview; Electron brings its own Chromium.

Download size

Same benchmark. Electron ships a whole browser with every app.

Clicks

Time from clicking a channel to the next painted frame, messages already loaded.

White lines: 16.7 ms is one frame at 60 Hz. 100 ms is where a click stops feeling instant.

The V1 Client numbers are 114 channel clicks across 8 servers, run in Playwright's WebKit on the threadripper. The HP's Ryzen 4000 laptop chip is slower, so those rows are estimates. A GPU-drawn list only lays out the rows on screen, so a click costs one frame.

The ladder

Slowest to fastest for clicking around a chat app.

Rust frameworks

The six real options for a native rewrite.

FrameworkHow it drawsLong listsMixed text in a messageColour emojiUsed byFit for V1
TauriSystem webview. WebKitGTK on Linux.DOM, lays out everythingHTML, the best there isYesMany apps; V1 Client todayWhat we have
GTK4 (gtk4-rs)Retained widgets, GPU renderer (GSK)ListView recycles rowsPango markupYesGNOME appsSolid, heavier
SlintDeclarative, own renderersListView virtualisesLimitedSkia renderer onlyEmbedded and industrial UIsLight, weak at chat text
icedRetained, Elm-style, wgpuNo built-in virtual listrich_textYes (cosmic-text)System76's COSMIC desktopRunner-up
eguiImmediate mode, redraws each frameManualBasicMonochromeRerun, toolsTools, not chat
GPUIOwn GPU renderer: Metal, Vulkan, DX12list / uniform_list, on-screen rows onlyStyledText, Zed's text systemYesZed, Discord's rebuildFastest

Why GPUI wins

Built for a code editor that scrolls huge files at 120 fps. A chat log is the same problem: long lists of mixed text. Zed's budget is 8.3 ms a frame.

The catch

Thin docs, and the API moves between versions. Pin one version. One critic timed 3,000 label updates at 8.4 ms; that author is tied to a rival framework.

Fits this machine

GPUI needs Vulkan on Linux. The HP has it: Radeon Vega 6, RADV driver. The voice code is already Rust and drops in as it is.

Everything

Every client, one table.

ClientEngineRAMVoiceRuns as V1Verdict

No client out there is native, works through V1, and has voice. Bot-login clients are all Electron, and they log in with V1's token as a second session. Native clients expect a user login. So it's our own build.

Sources

  1. Discord admits excessive RAM use, tests auto restarts
  2. TechSpot: Discord force-restarting itself at 4 GB
  3. Windows Latest: Rust rebuild uses 290 MB
  4. Discord rewrites desktop client in Rust with GPUI
  5. Discord drops Electron: scope and the 290 MB figure
  6. Windows Central: Discord is ditching Electron
  7. tech2geek: Discord vs Vesktop, Legcord, Dorion
  8. JustGeek: lightweight Discord clients tested
  9. discord-tauri: memory table
  10. Ripcord at 35–50 MB, user report
  11. Hopp: Tauri vs Electron benchmark
  12. Better Stack: Tauri vs Electron vs Electrobun
  13. Tauri vs iced vs egui performance
  14. Zed: rendering UIs at 120 fps
  15. Zed: keeping 120 fps in GPUI
  16. GPUI critique: the 8.4 ms label benchmark
  17. One app in nine toolkits
  18. Dissent, Abaddon, DiscordBotClient, BotClient
  19. Nielsen: the 0.1 second limit
  20. V1 Client numbers: measured on the HP and the threadripper, 14–15 Nov 2026