← Revision 28 as of 2021-09-24 15:30:38
|Deletions are marked like this.||Additions are marked like this.|
|Line 1:||Line 1:|
|= Dovecot Design =
* [[Design/Processes|Overview of Dovecot processes]]
* [[Design/Indexes|Design of index files]]
* [[Design/Indexes/MailIndexApi|API for accessing the index files]]
* [[Design/AuthProcess|Design of authentication process]]
* [[Design/AuthProtocol|Authentication protocol]]
* [[Design/MailProcess|Design of IMAP/POP3 processes]]
* [[Design/DoveadmProtocol|Doveadm server protocol]] and [[Design/DoveadmProtocol/HTTP|Doveadm HTTP server protocol]]
* [[Design/Dsync|Doveadm synchronization]]
== Code APIs ==
* [[Design/Code|Code design]] - 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.
* [[Design/Memory|Memory allocations]]
* [[Design/Buffers|Static/dynamic buffers]]
* [[Design/Arrays|Dynamic arrays]]
* [[Design/Strings|String handling]]
* [[Design/InputStreams|Input streams]]
* [[Design/OutputStreams|Output streams]]
* [[Design/Dcrypt|lib-dcrypt data formats]]
* [[Design/Storage/MailUser|Mail user]] contains everything related to a single user.
* [[Design/Storage/MailNamespace|Mail namespace]]: A single user can contain multiple [[Namespaces|namespaces]].
* [[Design/Storage/MailboxList|Mailbox list]] is used to list/manage a list of mailboxes for a single namespace (1:1 relationship).
* [[Design/Storage/MailStorage|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).
* [[Design/Storage/Mailbox|Mailbox]] is used to access a specific mailbox in a storage.
* [[Design/Storage/Mail|Mail]] is used to access a specific mail in a mailbox.
* [[Design/Storage/ErrorHandling|Error handling]].
* [[Design/Storage/Plugins|Plugins]] - how to hook into lib-storage functions.
|Moved to https://doc.dovecot.org/developer_manual/design/|