Build & Test Audit Coverage

imap-flow

The imap-flow repository provides a thin abstraction layer that handles IMAP client and server flows. One of the main features of imap-flow is that it abstracts away literal handling, making it easier to work with IMAP.

Playground

This repository also serves as a playground for crates built on imap-flow. These will eventually be moved into their own repositories.

Notably, we have the proxy, tasks, and tag-generator workspace members.

  • proxy is an already usable (but still not production-ready) IMAP proxy. It gracefully forwards unsolicited responses, abstracts away literal processing, and Debug-prints messages. Proxies are great for challenging the usability of a library, and we use them to validate our design decisions. (See the README.)
  • tasks is our prototype of a higher-level IMAP library that abstracts away command and response handling into Tasks. This crate will eventually become what a client or server implementor should use to get IMAP right. Currently, only the client side is implemented.
  • tag-generator generates process-wide unique (and unguessable) IMAP tags. This crate is here for organizational reasons and may be moved (or inlined) eventually.

License

This crate is dual-licensed under Apache 2.0 and MIT terms.

Thanks

Thanks to the NLnet Foundation for supporting imap-flow through their NGI Assure program!

NLnet logo Whitespace NGI Assure logo