> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oximail.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Architecture reference

> How to read this section: per-crate reference pages that document what each crate actually does, its invariants, its protocol surface, and its source map.

This section is the deep-dive companion to the [architecture overview](../architecture): one reference page per major crate, each written against the code (not against intentions), with the same structure — what the crate owns, how it works, its invariants, its configuration, its protocol surface, the design decisions behind it, and a source map.

## The layer map

```text theme={null}
Protocols     oximail-server (HTTP/JMAP)   oximail-smtp (25/587/465)
              oximail-imap · oximail-caldav · oximail-carddav · oximail-managesieve   ← legacy bridges
Domains       oximail-mail · oximail-calendar · oximail-contact · oximail-task
              oximail-file · oximail-sharing · oximail-chat · oximail-conversation
              oximail-sieve · oximail-label · oximail-admin · oximail-spam · …
Core          oximail-core (JMAP dispatch, capabilities, EventBus, push)
Storage       oximail-store (SqlBackend/SQLite · blobs · Tantivy) · oximail-crypto · oximail-blob
```

Two rules shape every boundary:

* **Domains never import each other.** Cross-domain effects travel over the EventBus (ADR-011): the SMTP crate emits `EmailIngested`, the calendar crate subscribes for `text/calendar` parts — neither knows the other's types.
* **Everything reaches storage through the same traits**, with `tenant_id` mandatory on every call (ADR-015).

## The crate pages

| Page                             | Covers                                                                                             |
| -------------------------------- | -------------------------------------------------------------------------------------------------- |
| [oximail-core](./oximail-core)   | The JMAP Core machinery: session, dispatch, back-references, capabilities, errors, EventBus, push. |
| [oximail-store](./oximail-store) | The storage core: `SqlBackend` over pooled SQLite, migrations, blobs, the Tantivy index.           |
| [oximail-mail](./oximail-mail)   | The Mail domain: Mailbox/Email/Thread/EmailSubmission/Identity, the ingestion path.                |
| [oximail-smtp](./oximail-smtp)   | The SMTP layer: inbound vs submission, the delivery queue, DSN, backup MX.                         |

These four are the load-bearing walls; further crate pages are added as they are written. For the operator-facing view of the same machinery, see the [Operator Manual](../operator/configuration); for the API surface, the [Developer section](../developer/jmap-core).
