summaryrefslogtreecommitdiffstats
path: root/doc/wiki/Design.txt
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/wiki/Design.txt66
1 files changed, 66 insertions, 0 deletions
diff --git a/doc/wiki/Design.txt b/doc/wiki/Design.txt
new file mode 100644
index 0000000..c27f4ec
--- /dev/null
+++ b/doc/wiki/Design.txt
@@ -0,0 +1,66 @@
+Dovecot Design
+==============
+
+ * <Overview of Dovecot processes> [Design.Processes.txt]
+ * <Design of index files> [Design.Indexes.txt]
+ * <API for accessing the index files> [Design.Indexes.MailIndexApi.txt]
+ * <Design of authentication process> [Design.AuthProcess.txt]
+ * <Authentication protocol> [Design.AuthProtocol.txt]
+ * <Design of IMAP/POP3 processes> [Design.MailProcess.txt]
+ * <Doveadm server protocol> [Design.DoveadmProtocol.txt] and <Doveadm HTTP
+ server protocol> [Design.DoveadmProtocol.HTTP.txt]
+ * <Doveadm synchronization> [Design.Dsync.txt]
+ * <Dovecot Lua support> [Design.Lua.txt]
+
+Protocol extensions
+-------------------
+
+ * <Forwarding parameters in IMAP/POP3/LMTP/SMTP proxying>
+ [Design.ParameterForwarding.txt]
+
+Code APIs
+---------
+
+ * <Code design> [Design.Code.txt] - 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> [Design.Memory.txt]
+ * <Static/dynamic buffers> [Design.Buffers.txt]
+ * <Dynamic arrays> [Design.Arrays.txt]
+ * <String handling> [Design.Strings.txt]
+ * <Input streams> [Design.InputStreams.txt]
+ * <Output streams> [Design.OutputStreams.txt]
+ * <Events> [Design.Events.txt]
+ * <Plugins> [Design.Plugins.txt]
+
+lib-dcrypt:
+
+ * <lib-dcrypt data formats> [Design.Dcrypt.txt]
+
+lib-storage:
+
+ * <Mail user> [Design.Storage.MailUser.txt] contains everything related to a
+ single user.
+ * <Mail namespace> [Design.Storage.MailNamespace.txt]: A single user can
+ contain multiple <namespaces> [Namespaces.txt].
+ * <Mailbox list> [Design.Storage.MailboxList.txt] is used to list/manage a
+ list of mailboxes for a single namespace (1:1 relationship).
+ * <Mail storage> [Design.Storage.MailStorage.txt] 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> [Design.Storage.Mailbox.txt] is used to access a specific mailbox
+ in a storage.
+ * <Mail> [Design.Storage.Mail.txt] is used to access a specific mail in a
+ mailbox.
+ * <Error handling> [Design.Storage.ErrorHandling.txt].
+ * <Plugins> [Design.Storage.Plugins.txt] - how to hook into lib-storage
+ functions.
+
+(This file was created from the wiki on 2019-06-19 12:42)