Expand description
Async, type-state IMAP client for the
imap-rs library.
This crate owns the session state machine and the command dispatcher. It is
transport-agnostic: drive it with any AsyncRead + AsyncWrite stream (see
imap-rs-tls for a ready-made
rustls transport).
§Highlights
Sessionis type-stated over protocol phase (Unauthenticated,Authenticated,Selected) and transport (PlainText,Tls), so invalid command sequences fail to compile.RawClientis the lower-level pipelining dispatcher: it routes tagged responses back to callers and broadcasts untagged events.- Credentials (
credentials::Password,credentials::OAuthToken) are zeroized on drop and redacted inDebug.
Re-exports§
pub use capabilities::Capabilities;pub use client::RawClient;pub use error::ClientError;pub use flags::Flag;pub use flags::StoreAction;pub use search::SearchKey;pub use search::SearchQuery;pub use session::Authenticated;pub use session::PlainText;pub use session::Selected;pub use session::Session;pub use session::Tls;pub use session::Unauthenticated;
Modules§
- capabilities
- IMAP server capability set.
- client
- Async I/O dispatcher: pipelines commands by tag, routes tagged status responses back to the originating future, broadcasts untagged events.
- credentials
- Secret credential wrappers.
- error
- Error type for the IMAP client.
- flags
- IMAP message flags and
STOREactions. - idle
- IDLE (RFC 2177) — long-poll for unsolicited mailbox events.
- search
- Builders for IMAP
SEARCH/UID SEARCHcriteria. - session
- Type-state IMAP session. Compile-time enforcement of valid state transitions plus credential-vs-cleartext separation.