A WhatsApp Client in Rust That Skips the Browser Entirely
If you've ever opened WhatsApp Web on a laptop and watched a browser tab eat over a gigabyte of RAM just to display text messages, you've probably wondered why a chat app needs a full rendering engine. ZapFast is a WhatsApp client written in Rust that answers that question by throwing the browser out and replacing it with a native desktop UI.
What It Does
ZapFast is a lightweight WhatsApp app for Linux, macOS, and Windows. It's built in Rust with egui and fastframe, and it links to your phone as a companion device through whatsapp-rust. There's no browser engine anywhere in the stack—the interface is rendered natively.
In the project's Linux test, it opens in under a second and uses about 200 MB of idle RAM, compared to 1.13 GB for WhatsApp Web. The measurements are published on the project's site if you want to dig into them. The interface ships in English, Chinese (Simplified and Traditional), Dutch, French, German, Indonesian, Italian, Portuguese (Brazil), Russian, Spanish, and Turkish.
Why It's Cool
The architecture is the point. Most "native" wrappers for web apps are Electron shells—a Chromium instance duct-taped to a website. ZapFast goes the other direction: a Rust client speaking the WhatsApp protocol directly, with a UI drawn by egui. That's a fundamentally different resource profile, and the idle RAM number backs it up.
The feature table isn't a stub. A lot of native clients stop at "you can send text." ZapFast handles formatted text, replies, edits, reactions, forwards, pictures, files, stickers, GIFs, polls, and voice messages. You can play voice messages, videos, round video messages, GIFs, and animated stickers in place, right in the chat. That's the kind of media support that usually forces people back to the official client.
Local history with real export options. Your chats live in an encrypted archive on your computer, and older messages get fetched from your phone as you scroll. You can export locally saved history as text or as a ZIP with downloaded attachments—useful if you've ever wanted your conversations in a format you actually control.
Multiple numbers in one window. If you juggle more than one WhatsApp number, you can link them both and switch between them without launching a second app.
Privacy without a middleman. Locked chats can be hidden behind a code, or the whole window behind an app lock. The README is explicit that nothing goes to a server of theirs, which matters for anyone uneasy about third-party chat clients.
Small thoughtful touches. Keyboard shortcuts, cross-message text selection, tray notifications, light/dark/system themes with custom colors, and on Omarchy it follows your desktop theme. None of these are headline features, but they're the details that separate a daily driver from a demo.
How to Try It
Installation depends on your platform:
- macOS:
brew install --cask crmne/tap/zapfast, or grab the Mac app from the download page - Arch Linux:
yay -S zapfast-bin - Windows: pick your build on the Download page
- Other Linux: Nix, AppImage, and other options are on the Download page
- From source: follow the Getting started guide for dependencies and commands
Once it's running, linking takes a minute:
- Open ZapFast. It shows a QR code.
- On your phone, open WhatsApp, then Settings, Linked devices, Link a device, and scan the code. Or click Link with phone number and enter the eight-character code on your phone.
The source lives at github.com/crmne/zapfast, and it's MIT licensed, so you can read through it or contribute if something's missing.
Final Thoughts
ZapFast is for people who want WhatsApp on the desktop without paying the browser tax—and who are comfortable with a third-party client linking to their account. The RAM and startup numbers are the hook, but the feature coverage is what makes it plausible as an everyday app rather than a curiosity. If you're on Linux especially, where official desktop options are thin, it's worth a look. The Rust-plus-egui approach also makes it an interesting reference for anyone building native clients for web-first services.