Every way to run a Discord client, ranked on memory and click speed. GPUI comes out fastest. Discord picked it too.
Log scale. Each step right is ten times more RAM.
One app, six windows, Hopp's 2025 benchmark. Tauri uses the system webview; Electron brings its own Chromium.
Same benchmark. Electron ships a whole browser with every app.
Time from clicking a channel to the next painted frame, messages already loaded.
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.
Slowest to fastest for clicking around a chat app.
The six real options for a native rewrite.
| Framework | How it draws | Long lists | Mixed text in a message | Colour emoji | Used by | Fit for V1 |
|---|---|---|---|---|---|---|
| Tauri | System webview. WebKitGTK on Linux. | DOM, lays out everything | HTML, the best there is | Yes | Many apps; V1 Client today | What we have |
| GTK4 (gtk4-rs) | Retained widgets, GPU renderer (GSK) | ListView recycles rows | Pango markup | Yes | GNOME apps | Solid, heavier |
| Slint | Declarative, own renderers | ListView virtualises | Limited | Skia renderer only | Embedded and industrial UIs | Light, weak at chat text |
| iced | Retained, Elm-style, wgpu | No built-in virtual list | rich_text | Yes (cosmic-text) | System76's COSMIC desktop | Runner-up |
| egui | Immediate mode, redraws each frame | Manual | Basic | Monochrome | Rerun, tools | Tools, not chat |
| GPUI | Own GPU renderer: Metal, Vulkan, DX12 | list / uniform_list, on-screen rows only | StyledText, Zed's text system | Yes | Zed, Discord's rebuild | Fastest |
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.
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.
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.
Every client, one table.
| Client | Engine | RAM | Voice | Runs as V1 | Verdict |
|---|
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.