This documentation is for Dovecot v2.x, see wiki1 for v1.x documentation.
Differences between revisions 1 and 24 (spanning 23 versions)
Revision 1 as of 2006-02-13 21:41:53
Size: 173
Editor: TimoSirainen
Comment:
Revision 24 as of 2017-02-07 07:45:22
Size: 2089
Editor: officewifi
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
 * [Design/Processes Overview of Dovecot processes]
 * [Design/Indexes Design of index files]
 * [Design/MailProcess Design of IMAP/POP3 processes]
 * [[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.

liblib:

 * [[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/Plugins|Plugins]]

lib-dcrypt:
 * [[Design/Dcrypt|lib-dcrypt data formats]]

lib-storage:

 * [[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.

Dovecot Design

Code APIs

  • 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.

liblib:

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.

None: Design (last edited 2021-09-24 15:30:38 by TimoSirainen)