~ober/jerboa-jmap

Imported from ~/mine/jerboa-jmap

download snapshot

about

# jjmapd — Zero-knowledge JMAP email-fetch server

A JMAP (RFC 8620) email-fetch server that stores age-encrypted email blobs.
Plaintext is never stored on disk. Decryption happens only on the client.

## Quick Start

```
jjmapd serve --config config.json
```

## Architecture

```
┌──────────┐  plaintext   ┌──────────┐  encrypted   ┌─────────┐
│  SMTP    │ ──────────→  │  jjmapd  │ ────────────→ │ SQLite  │
│  server  │  (maildir)   │  ingest  │  (age blobs)  │  + FS   │
└──────────┘              └──────────┘               └─────────┘
                                    │
                          JMAP/TLS  │  encrypted
                          ←─────────┘  (age blobs)
                                    │
                            ┌───────┴───────┐
                            │  Android APK  │
                            │  (decrypts    │
                            │   on device)  │
                            └───────────────┘
```

## Build

```
make build        # Jerboa library build
make binary       # produce jjmapd binary
make native-build # Rust age library
make test         # run tests
make dist         # distribution build
```

## Security

See `SECURITY.md`. Cryptographic operations are pure Rust, no OpenSSL.

## License

Apache 2.0

recent commits