.. _dovecot_design: ==================== Dovecot Design ==================== - :ref:`Overview of Dovecot processes ` - :ref:`Design of index files ` - :ref:`API for accessing the indexfiles ` - :ref:`Design of authentication process ` - :ref:`Authentication protocol ` - :ref:`Doveadm server protocol ` and :ref:`Doveadm HTTP server protocol ` - :ref:`Doveadm synchronization ` - :ref:`Dovecot Lua support ` - :ref:`Dovecot dict protocol ` Protocol extensions ------------------- - :ref:`Forwarding parameters in IMAP/POP3/LMTP/SMTP proxying ` Code APIs --------- - :ref:`Coding style ` - 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: - :ref:`Memory allocations ` - :ref:`Static/dynamic buffers ` - :ref:`Dynamic arrays ` - :ref:`String handling ` - :ref:`Input streams ` - :ref:`Output streams ` - :ref:`Events ` - :ref:`Plugins ` lib-dcrypt: - :ref:`lib-dcrypt data formats ` lib-storage: - :ref:`Mail user ` contains everything related to a single user. - :ref:`Mail namespace ` A single user can contain multiple :ref:`namespaces `. - :ref:`Mailbox list ` is used to list/manage a list of mailboxes for a single namespace (1:1 relationship). - :ref:`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). - :ref:`Mailbox ` is used to access a specific mailbox in a storage. - :ref:`Mail ` is used to access a specific mail in a mailbox. - :ref:`Error handling `. - :ref:`Plugins ` - how to hook into lib-storage functions. .. toctree:: :maxdepth: 5 :glob: :hidden: design/* design/indexes/*