Skip to content

duesee/imap-flow

Repository files navigation

main audit Coverage

imap-flow

imap-flow is a thin abstraction over IMAP's distinct "protocol flows". These are literal handling, AUTHENTICATE, and IDLE.

The way these flows were defined in IMAP couples networking, parsing, and business logic. imap-flow untangles these flows, providing a minimal interface allowing sending and receiving coherent messages. It's a thin layer paving the ground for a correct client or server implementation.

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •