NATIVE DESKTOP · MESSAGING PROTOCOL
postal
A standalone native WhatsApp client that speaks the multi-device protocol directly. No webview, no forced history download.
SQLite is the durable archive. RAM is a bounded window. History sync is a program decision rather than a pairing requirement.
Problem
Wrapping WhatsApp Web forces the client to download and hold the account's entire message history. That is tens of gigabytes on disk, multiple gigabytes of RAM, and performance that degrades as the history grows. The protocol itself does not require any of it.
Key decisions
Native protocol, no webview
Built on whatsapp-rust pinned to a git revision newer than the 0.7.0 release for history-sync admission. The only webview renders Postal's own UI.
History sync is opt-in
Pairing pulls the recent window only. Full history (up to 10,000 days, phone permitting) is requested explicitly from Settings instead of being downloaded by default.
Disk and RAM decoupled
SQLite is a durable archive; the open conversation keeps a bounded message window (500 default, 50-2,000). Eviction from RAM never deletes disk rows.
Serialized store access
A StoreWorker gate holds an exclusive lease through each savepoint, so live and history batches never race while background work waits without occupying Tokio workers.
Measured against a webview client
Results
Tradeoffs
- ·Databases, media, and backups are plaintext on disk; encryption is open work
- ·Releases are on hold until they cover every supported platform; installers build from master
- ·No calls, tray icon, status updates, communities, or album support yet