this repo has no description
1# JMAP OCaml Client
2
3An OCaml interface to the JMAP protocol ([RFC8620](https://datatracker.ietf.org/doc/html/rfc8620)) and JMAP Mail extension ([RFC8621](https://datatracker.ietf.org/doc/html/rfc8621)).
4
5**Note:** This library is largely AI-generated and has not been audited carefully. It's a proof-of-concept implementation of the JMAP specification.
6
7## Overview
8
9JMAP (JSON Meta Application Protocol) is a modern protocol for synchronizing email, calendars, and contacts designed as a replacement for legacy protocols like IMAP. This OCaml implementation provides:
10
11- Type-safe OCaml interfaces to the JMAP Core and Mail specifications
12- Authentication with username/password or API tokens (Fastmail support)
13- Convenient functions for common email and mailbox operations
14- Support for composing complex multi-part requests with result references
15- Typed handling of message flags, keywords, and mailbox attributes
16
17## Installation
18
19Add to your project with opam:
20
21```
22opam install .
23```
24
25## Features
26
27- **Core JMAP Protocol**
28 - Session handling
29 - API request/response management
30 - Type-safe representation of all JMAP structures
31 - Result references for composing multi-step requests
32
33- **JMAP Mail Extension**
34 - Mailbox operations (folders/labels)
35 - Email retrieval and manipulation
36 - Thread handling
37 - Identity management
38 - Email submission
39 - Message flags and keywords
40
41- **Fastmail Integration**
42 - API token authentication
43 - Example tools for listing messages
44
45## Documentation
46
47The library includes comprehensive OCamldoc documentation with cross-references to the relevant sections of the JMAP specifications.
48
49Build the documentation with:
50
51```
52dune build @doc
53```
54
55## Example Tools
56
57The package includes several example tools:
58
59- `fastmail-list`: Lists emails from a Fastmail account (requires JMAP_API_TOKEN)
60- `jmap-tutorial-examples`: Demonstrates basic JMAP operations as shown in the tutorial
61
62## License
63
64[MIT License](LICENSE)
65
66## References
67
68- [RFC8620: The JSON Meta Application Protocol (JMAP)](https://datatracker.ietf.org/doc/html/rfc8620)
69- [RFC8621: The JSON Meta Application Protocol (JMAP) for Mail](https://datatracker.ietf.org/doc/html/rfc8621)
70- [Message Flag and Mailbox Attribute Extension](https://datatracker.ietf.org/doc/html/draft-ietf-mailmaint-messageflag-mailboxattribute-02)
71- [Fastmail Developer Documentation](https://www.fastmail.com/dev/)