Overview
Dovecot Design
- Overview of Dovecot processes
- Design of Index Files
- Design of Authentication Process
- Doveadm Server Protocol and Doveadm HTTP API
- Doveadm Synchronization
- Dovecot Lua Support
- Dovecot Dict Protocol
Protocol Extensions
Code APIs
- Coding Style Guide - explanations how and why the coding style is the way it is.
Look at the *.h files for the actual API documentation. The documentation below doesn't attempt to list full API documentation.
liblib:
- Memory Allocations
- Static/Dynamic Buffers
- Dynamic Arrays
- String Handling
- Input Streams
- Output Streams
- Events
- Plugins
lib-dcrypt:
lib-storage:
- Mail User contains everything related to a single user.
- Mail Namespace A single user can contain multiple namespaces.
- Mailbox List is used to list/manage a list of mailboxes for a single namespace (1:1 relationship).
- Mail Storage is used to access mails in a specific location with a specific mailbox format. Multiple namespaces can point to the same storage. A single namespace may in future (but not currently) point to multiple storages (e.g. a mixed mbox and Maildir directory).
- Mailbox is used to access a specific mailbox in a storage.
- Mail is used to access a specific mail in a mailbox.
- Error Handling
- Plugins - how to hook into lib-storage functions.