imap-codec
%%{init: {'theme': 'neutral' } }%%
flowchart LR
imap-types --> imap-codec
imap-codec -.-> imap-next
imap-next -.-> imap-proxy
imap-next -.-> imap-client
style imap-codec stroke-width:4px
click imap-types href "https://github.com/duesee/imap-codec/tree/main/imap-types"
click imap-codec href "https://github.com/duesee/imap-codec"
click imap-next href "https://github.com/duesee/imap-next"
click imap-proxy href "https://github.com/duesee/imap-proxy"
click imap-client href "https://github.com/soywod/imap-client"
This library provides parsing and serialization for IMAP4rev1.
It is based on imap-types and a rock-solid and well-documented building block for IMAP client and server implementations in Rust.
The complete formal syntax of IMAP4rev1 and several IMAP extensions are implemented.
If you are looking for thin protocol handling, i.e., LITERAL handling, AUTHENTICATE, and IDLE, head over to imap-next.
Features
- Parsing works in streaming mode.
Incompleteis returned when there is insufficient data to make a final decision. No message will be truncated. - Parsing is zero-copy by default. Allocation is avoided during parsing, but all messages can explicitly be converted into more flexible owned variants.
- Fuzzing and property-based tests exercise the library. The library is fuzz-tested never to produce a message it can't parse itself.
Usage
use ;
License
This crate is dual-licensed under Apache 2.0 and MIT terms.