this repo has no description
1# JMAP OCaml Libraries 2 3This project implements OCaml libraries for the JMAP protocol, following the specifications in RFC 8620 (Core) and RFC 8621 (Mail). 4 5## Project Structure 6 7The code is organized into three main libraries: 8 91. `jmap` - Core JMAP protocol (RFC 8620) 10 - Basic data types 11 - Error handling 12 - Wire protocol 13 - Session handling 14 - Standard methods (get, set, changes, query) 15 - Binary data handling 16 - Push notifications 17 182. `jmap-unix` - Unix-specific implementation of JMAP 19 - HTTP connections to JMAP endpoints 20 - Authentication 21 - Session discovery 22 - Request/response handling 23 - Blob upload/download 24 - Unix-specific I/O 25 263. `jmap-email` - JMAP Mail extension (RFC 8621) 27 - Email specific types 28 - Mailbox handling 29 - Thread management 30 - Search snippet functionality 31 - Identity management 32 - Email submission 33 - Vacation response 34 35## Usage 36 37The libraries are designed to be used together. For example: 38 39```ocaml 40(* Using the core JMAP protocol library *) 41open Jmap 42open Jmap.Types 43open Jmap.Wire 44 45(* Using the Unix implementation *) 46open Jmap_unix 47 48(* Using the JMAP Email extension library *) 49open Jmap_email 50open Jmap_email.Types 51 52(* Example: Connecting to a JMAP server *) 53let connect_to_server () = 54 let credentials = Jmap_unix.Basic("username", "password") in 55 let (ctx, session) = Jmap_unix.quick_connect ~host:"jmap.example.com" ~username:"user" ~password:"pass" in 56 ... 57``` 58 59## Building 60 61```sh 62# Build 63opam exec -- dune build @check 64 65# Generate documentation 66opam exec -- dune build @doc 67``` 68 69## References 70 71- [RFC 8620: The JSON Meta Application Protocol (JMAP)](https://www.rfc-editor.org/rfc/rfc8620.html) 72- [RFC 8621: The JSON Meta Application Protocol (JMAP) for Mail](https://www.rfc-editor.org/rfc/rfc8621.html)