See more of JMAP in action from these providers:
JMAP software
Clients
- aerc: A terminal email client for the discerning hacker.
- Cypht: (PHP, JS) Lightweight Open Source webmail aggregator
- Group-Office (Javascript): Open source groupware and collaboration platform
- JMAP Demo Webmail (JavaScript, MIT): a sophisticated demo webmail client to be used as a base for new projects.
- JMAP::Tester (Perl, Perl5): a JMAP client made for testing JMAP servers.
- Ltt.rs (Java, Apache): an email client for Android
- Mailtemi , a native iOS email client
- meli (Rust): terminal email client (GPLv3)
- mujmap (Rust): Synchronize JMAP mail with notmuch
- Swift Mail: A native macOS client for JMAP
- tmail-flutter (Dart): Android, iOS client
Servers
- Apache James (Java, Apache): Apache James, a.k.a. Java Apache Mail Enterprise Server is an open source mail server written entirely in Java. The 3.0 series is adding JMAP support, upcoming 3.6.0 adds support for JMAP over websocket.
- atmail (golang, proprietary)
- Cyrus IMAP (C, BSD-style): A scalable enterprise-grade IMAP, CalDAV and CardDAV server. The 3.0 series is adding JMAP support, instructions to enable it are here.
- Group-Office (PHP): Open source groupware and collaboration platform
- hyper-auth-proxy (Rust): A proxy to do HTTP basic auth from a JWT token and redis session credentials; build to add JWT bearer auth support to Cyrus’s JMAP.
- JMAP Proxy (Perl, MIT): a complete JMAP server implementation that uses any IMAP, CalDAV and CardDAV store as a backend.
- Stalwart JMAP (Rust, AGPLv3): Open-source JMAP server designed to be robust, secure and scalable. Includes full support for JMAP Core, JMAP Mail, JMAP for Sieve, JMAP over WebSocket, JMAP for Quotas and JMAP Blob Management.
- tmail-backend (Java, Apache): builds on Apache James with extra features
Libraries
- go-jmap (Go, MIT): JMAP client library written in Go
- Java JMAP Library (Java 7, Apache): a low level jmap-client library as well as a higher level jmap-mua library.
- jmap-client-ts (TypeScript, MIT): a lightweight promise-based API to make JMAP requests.
- jmap-client (Rust; Apache/MIT): JMAP client library written in Rust. Includes full support for JMAP Core, JMAP Mail and JMAP over WebSocket.
- jmap-jam (TypeScript, MIT): Jam is a tiny, strongly-typed JMAP client with zero runtime dependencies. It has friendly, fluent APIs that make working with JMAP a breeze.
- JMAP-JS (JavaScript, MIT): a full implementation of the JMAP mail, calendar and contacts model in JavaScript. It supports asynchronous local changes and is tolerant of network failure – actions will update the UI instantly, then synchronise changes back to the server when it can. It also has multi-level undo/redo support. Used by the demo webmail.
- jmap-rs (Rust; in development): Rust client (and maybe server) library for JMAP
- jmapc (Python; partially implemented): Python 3 client library for JMAP mail
- melib (Rust): mail client library used in meli (GPLv3)
- zend-jmap (PHP, New BSD): JMAP for Zend Framework
- jmap-yacl (TypeScript, MIT): Another lightweight client library for working with the JMAP, which supports working with JavaScript, TypeScript, and also has built-in types for Typebox. Not implemented yet: OAuth, Push
Proxies
- Stalwart IMAP-to-JMAP Proxy (Rust, AGPLv3): Open-source IMAP4-to-JMAP proxy. Supports IMAP4rev2, IMAP4rev1 and multiple extensions.
Planned
- Dovecot
- Mimestream, a native macOS email client
- Mailtemi, a native Android and macOS email clients.
Requested
- Alps Webmail
- Claws Mail
- Evolution
- Geary
- Horde IMP Webmail
- K-9 Mail
- Mailu
- Nextcloud
- RainLoop Webmail
- Thunderbird
If you’re working on a project that uses JMAP, please open an issue or make a pull request on GitHub to update this page.