home/rusty inbox
Open-source desktop app · Free
Rusty Inbox app icon

Rusty Inbox.

A fast, native email client — Rust engine, Qt 6 interface

Rusty Inbox is a free, open-source email client for Linux, Windows and macOS that I designed and built. The whole mail engine is native Rust and the interface is Qt Quick, so the window opens in a fraction of a second and stays light on memory. It sorts your inbox into people, notifications and newsletters, and every action works from the keyboard.

Linux Windows 10/11 macOS 12+ MIT / Apache-2.0 · no telemetry
Rust
mail engine
Qt 6
QML interface
3
Linux · Windows · macOS
0
telemetry

Watch it in action

Launch video · 53 s
Feature tour on a demo mailbox · 2 min 20 s

Screenshots

Smart Inbox: people first, notifications and newsletters grouped and foldable
Smart Inbox: people first, notifications and newsletters grouped and foldable
Reading a thread, with the HTML message rendered in a script-free frame
Reading a thread, with the HTML message rendered in a script-free frame
Reply with rich text, recipient chips and attachments
Reply with rich text, recipient chips and attachments
Select all or a range, then act on many messages at once
Select all or a range, then act on many messages at once
Accounts: add any IMAP/SMTP account or import from Thunderbird
Accounts: add any IMAP/SMTP account or import from Thunderbird
Light theme: colours and font follow the desktop theme
Light theme: colours and font follow the desktop theme

What it does

Smart Inbox

Mail from people comes first. Notifications, newsletters and invitations go into their own groups, which you can fold away.

Unified mailboxes

Every account in one inbox, with per-account Sent, Drafts and Done when you need them.

Undo Send & Send Later

Messages wait in a local outbox, so you can take them back. A failed send retries by itself and stays under Scheduled.

Drafts that sync

Drafts save while you type and appear in your provider's Drafts folder; sent mail is filed in Sent and replies are flagged as answered.

Done, Snooze, Pin, bulk actions

Select all or a range and act at once. Every action has undo.

Keyboard first

J/K to move, E for Done, S to snooze, R/A/F to reply, reply all and forward, C to compose, Ctrl+Enter to send.

Desktop native

Tray icon with an unread dot, desktop notifications, mailto: links, a single running instance and live theming (Omarchy themes included).

Import from Thunderbird

Accounts, servers and saved passwords come over in one click when the profile has no primary password.

Local and private

Mail is cached in SQLite on your machine. No accounts, analytics, crash reporting or cloud relay. It talks only to your mail servers.

How it is built

Two layers that never wait on each other. The engine runs inside the app on a small Tokio runtime; the interface reads anything already stored instantly and receives network results as Qt signals, so scrolling and typing never block on the network. IMAP connections are pooled per account, which keeps servers that throttle frequent logins happy.

  1. 01QMLInterface — every screen (inbox, reader, composer, settings) in Qt Quick / QML, driven through cxx-qt.
  2. 02bridge.rsOne QObject between QML and Rust: synchronous getters for anything already stored, Qt signals for network results.
  3. 03corerusty-inbox-core — IMAP sync (async-imap + rustls), SMTP (lettre), MIME parsing, drafts, replies, Thunderbird import. No UI code.
  4. 04SQLiteLocal cache of threads, messages, outbox and settings, so the window opens on stored mail instantly.
RustQt 6QMLcxx-qtTokioasync-imaprustlslettreSQLite

Install

Packages

  • Linux: AppImage and Flatpak bundle
  • Arch Linux: the rusty-inbox package (AUR)
  • Windows 10/11: installer or portable zip
  • macOS 12+: .dmg for Apple Silicon and Intel
GitHub Releases

Build from source

Needs Rust 1.85+ and Qt 6.8+ with Qt Quick, Quick Controls 2 and Qt WebEngine.

git clone https://github.com/karem505/rusty-inbox && cd rusty-inbox cargo build --release ./target/release/rusty-inbox

Adding Gmail? Create an app password in your Google account and use it as the password. Coming from Thunderbird? Choose Import from Thunderbird.

Build story

How I built a native email client with Rust and Qt

The architecture, the decisions that kept it fast, and what I learned shipping one codebase to three operating systems.

Frequently asked questions

What is Rusty Inbox?

Rusty Inbox is a free, open-source desktop email client for Linux, Windows and macOS, built by Abo-Elmakarem Shohoud. Its mail engine is written in Rust and its interface in Qt 6 / QML, so it starts fast and stays light on memory. It works with any IMAP/SMTP account.

Is Rusty Inbox free and open source?

Yes. The full source is on GitHub under your choice of the MIT or Apache 2.0 license. There is no paid tier and no account to create.

Does it work with Gmail and Outlook?

It works with any provider that offers IMAP and SMTP: Gmail (sign in with an app password), Fastmail, iCloud, Yahoo, cPanel hosting and standard mail servers. Most providers are detected from the address alone.

Is it a good Thunderbird alternative?

It is built for people who want a faster, keyboard-first inbox. You can bring your Thunderbird accounts over in one click: servers, accounts and saved passwords are imported, as long as the profile has no primary password.

How is it different from Electron mail apps?

The interface is Qt Quick drawn natively, not a web app inside a bundled browser, and all mail logic runs in compiled Rust. A web view is used only to display HTML message bodies, isolated and with scripts disabled.

Does Rusty Inbox collect any data?

No. It has no analytics, no crash reporting and no servers of its own. Mail, settings and passwords stay in your data directory and the app connects only to the mail servers you add.

Built by Abo-Elmakarem Shohoud, CTO and full-stack engineer in Cairo. I build fast, native internal tools and automate how companies work — see digital transformation consulting.

Star Rusty Inbox on GitHub