File: Design.txt

package info (click to toggle)
dovecot 1%3A2.2.13-11
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 38,472 kB
  • sloc: ansic: 341,153; sh: 16,920; makefile: 5,385; cpp: 1,474; perl: 265; xml: 44; python: 34; pascal: 27
file content (52 lines) | stat: -rw-r--r-- 2,088 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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]

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]
 * <Plugins> [Design.Plugins.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 2013-11-24 04:42)