finds.dev← search

// the find

jonhoo/rust-imap

★ 575 · Rust · Apache-2.0 · updated Jun 2026

IMAP client library for Rust

A synchronous IMAP client library for Rust, covering RFC 3501 plus a handful of extensions (IDLE, SORT, ACLs, quotas, metadata). Aimed at developers who need to read, search, or monitor mailboxes from a Rust program — not a full email client stack, just the IMAP wire protocol layer.

The API surface is clean: ClientBuilder → Client → Session follows the IMAP state machine closely, so the type system prevents you from calling authenticated commands before login. IDLE support is built in, which is the hard part of real-time mailbox monitoring. Both native-tls and rustls are supported with a feature flag, making cross-compilation viable. Integration tests run against GreenMail or Cyrus, so the test suite actually exercises a real IMAP server rather than just unit-testing the parser.

The README opens with a maintainer-wanted notice — that's a real adoption risk, not a footnote. The API is fully synchronous; there's no async/await support, which means wrapping this in a tokio runtime is awkward and blocking threads in async contexts is your problem. UTF-8 is assumed in several places (the body example calls from_utf8 with expect), which will silently break on non-ASCII mail bodies in production. Extension coverage is uneven — SORT and METADATA are there, but CONDSTORE, QRESYNC, and NAMESPACE are absent, so anything beyond basic mailbox sync will hit protocol gaps.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →