summaryrefslogtreecommitdiff
path: root/mail/docs/index.rst
diff options
context:
space:
mode:
authorKali Kaneko (leap communications) <kali@leap.se>2016-08-29 23:05:33 -0400
committerKali Kaneko (leap communications) <kali@leap.se>2016-08-29 23:05:33 -0400
commit43df4205af42fce5d097f70bb0345b69e9d16f1c (patch)
tree3850a0ed0748476b37e2850bbdc10d10aadfbbbd /mail/docs/index.rst
parentaa882b7a64f2c821c8e241a5ff725f27c64fc15f (diff)
parent8e4746835a1a053558ff06d4fd12b31167a80296 (diff)
Merge leap_mail into unified bitmask repo
Diffstat (limited to 'mail/docs/index.rst')
-rw-r--r--mail/docs/index.rst96
1 files changed, 96 insertions, 0 deletions
diff --git a/mail/docs/index.rst b/mail/docs/index.rst
new file mode 100644
index 00000000..a2133f48
--- /dev/null
+++ b/mail/docs/index.rst
@@ -0,0 +1,96 @@
+.. leap.mail documentation master file, created by
+ sphinx-quickstart on Mon Aug 25 19:19:48 2014.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+leap.mail
+=========
+
+*decentralized and secure mail delivery and synchronization*
+
+This is the documentation for the ``leap.mail`` module. It is a `twisted`_
+package that allows to receive, process, send and access existing messages using
+the `LEAP`_ platform.
+
+One way to use this library is to let it launch two standard mail services,
+``smtp`` and ``imap``, that run as local proxies and interact with a remote
+``LEAP`` provider that offers *a soledad syncronization endpoint* and receives
+the outgoing email. This is what `Bitmask`_ client does.
+
+From the release 0.4.0 on, it's also possible to use a protocol-agnostic email
+public API, so that third party mail clients can manipulate the data layer. This
+is what the awesome MUA in the `Pixelated`_ project is using.
+
+.. _`twisted`: https://twistedmatrix.com/trac/
+.. _`LEAP`: https://leap.se/en/docs
+.. _`Bitmask`: https://bitmask.net/en/features#email
+.. _`Pixelated`: https://pixelated-project.org/
+
+How does this all work?
+-----------------------
+
+All the underlying data storage and sync is handled by a library called
+`soledad`_, which handles encryption, storage and sync. Based on `u1db`_,
+documents are stored locally as local ``sqlcipher`` tables, and syncs against
+the soledad sync service in the provider.
+
+OpenPGP key generation and keyring management are handled by another leap
+python library: `keymanager`_.
+
+See :ref:`the life cycle of a leap email <mail_journey>` for an overview of the life cycle
+of an email through ``LEAP`` providers.
+
+.. _`Soledad`: https://leap.se/en/docs/design/soledad
+.. _`u1db`: https://en.wikipedia.org/wiki/U1DB
+.. _`keymanager`: https://github.com/leapcode/keymanager/
+
+
+Data model
+----------
+.. TODO clear document types documentation.
+
+The data model at the present moment consists of several *document types* that split email into
+different documents that are stored in ``Soledad``. The idea behind this is to
+keep clear the separation between *mutable* and *inmutable* parts, and still being able to
+reconstruct arbitrarily nested email structures easily.
+
+Documentation index
+===================
+
+..
+.. Contents:
+.. toctree::
+ :maxdepth: 2
+
+ hacking
+
+.. intro
+.. tutorial
+
+
+API documentation
+-----------------
+
+If you were looking for the documentation of the ``leap.mail`` module, you will
+find it here.
+
+Of special interest is the `public mail api`_, which should remain relatively
+stable across the next few releases.
+
+.. _`public mail api`: api/mail.html#module-mail
+
+
+.. toctree::
+ :maxdepth: 2
+
+ api/leap.mail
+
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+