Skip to content

Awesome-Technologies/kmp-jmap-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JMAP Kotlin Multiplatform

PR Checks Release Test License: Apache-2.0

Kotlin Multiplatform library for the JMAP protocol with typed APIs for Core, Mail, Calendar, and Contacts, plus a raw escape hatch for unsupported extensions.

Current status

This repository is in a docs-first and test-driven bootstrap phase. Implementation starts only after architecture and process docs are reviewed.

License: Apache License 2.0

Plan at a glance

  • Targets: JVM, Android, iOS, JS
  • API model: typed-first APIs plus raw request/response escape hatch
  • Auth: caller-supplied headers (HeaderProvider style), no built-in OAuth flow
  • Extension handling: preserve unknown JSON fields for forward compatibility
  • Realtime: optional module (not required for initial core release)

Architecture plan

The planned module split is:

  • jmap-core
  • jmap-mail
  • jmap-calendar
  • jmap-contacts
  • jmap-blob
  • jmap-filenode (draft-gated)
  • jmap-sharing
  • jmap-realtime-bindings (optional)
  • jmap-testing

Detailed architecture and design decisions live in ARCHITECTURE.md.

Quality and delivery model

  • Test-driven implementation (red -> green -> refactor)
  • Small, single-purpose commits
  • Fast-forward history policy
  • Mandatory quality gates per commit:
    • build
    • ktlint
    • detekt
    • unit tests

See AGENTS.md and CONTRIBUTING.md for full contribution policy.

CI and GitHub operations

  • PR validation workflow with required checks
  • PR triage and labeling by GitHub Copilot workflow
  • PR review by GitHub Copilot
  • Release-confidence workflow on every push to main
  • Regular security audits (CodeQL, Dependabot, Code Scanning, Secret Scanning)
  • Planned GitHub Pages API docs publication with Dokka

Authentication in examples

All repository examples and docs must include authentication. Unauthenticated example flows are out of scope.

JMAP RFCs

Comprehensive list of published JMAP Working Group RFCs. Status badges are sourced from IETF Datatracker (doc.json std_level) so they auto-refresh from the upstream document metadata.

RFC Title Status
RFC 8620 The JSON Meta Application Protocol (JMAP) RFC 8620 status
RFC 8621 The JSON Meta Application Protocol (JMAP) for Mail RFC 8621 status
RFC 8887 A JSON Meta Application Protocol (JMAP) Subprotocol for WebSocket RFC 8887 status
RFC 9007 Handling Message Disposition Notification with the JSON Meta Application Protocol (JMAP) RFC 9007 status
RFC 9219 S/MIME Signature Verification Extension to the JSON Meta Application Protocol (JMAP) RFC 9219 status
RFC 9404 JSON Meta Application Protocol (JMAP) Blob Management Extension RFC 9404 status
RFC 9425 JSON Meta Application Protocol (JMAP) for Quotas RFC 9425 status
RFC 9610 JSON Meta Application Protocol (JMAP) for Contacts RFC 9610 status
RFC 9661 The JSON Meta Application Protocol (JMAP) for Sieve Scripts RFC 9661 status
RFC 9670 JSON Meta Application Protocol (JMAP) Sharing RFC 9670 status
RFC 9749 Use of Voluntary Application Server Identification (VAPID) in JSON Meta Application Protocol (JMAP) Web Push RFC 9749 status

JMAP Internet-Drafts

Comprehensive list of JMAP Working Group Internet-Drafts from the IETF Datatracker JMAP document index (active, active with IESG, and expired, checked on February 17, 2026). Status badges are sourced from IETF Datatracker (doc.json state) so they auto-refresh from upstream metadata.

Draft Title Status
draft-ietf-jmap-calendars JSON Meta Application Protocol (JMAP) for Calendars draft-ietf-jmap-calendars status
draft-ietf-jmap-emailpush JSON Meta Application Protocol (JMAP) Email Delivery Push Notifications draft-ietf-jmap-emailpush status
draft-ietf-jmap-essential JMAP Essential Profile draft-ietf-jmap-essential status
draft-ietf-jmap-filenode JMAP File Storage extension draft-ietf-jmap-filenode status
draft-ietf-jmap-mail-sharing JMAP Mail Sharing draft-ietf-jmap-mail-sharing status
draft-ietf-jmap-metadata JMAP Object Metadata draft-ietf-jmap-metadata status
draft-ietf-jmap-portability-extensions JMAP Migration and Portability Extensions draft-ietf-jmap-portability-extensions status
draft-ietf-jmap-refplus JMAP Enhanced Result References draft-ietf-jmap-refplus status
draft-ietf-jmap-rest JMAP REST Mapping draft-ietf-jmap-rest status
draft-ietf-jmap-smime-sender-extensions JMAP extension for S/MIME signing and encryption draft-ietf-jmap-smime-sender-extensions status
draft-ietf-jmap-tasks JMAP for Tasks draft-ietf-jmap-tasks status

About

JMAP client library for Kotlin Multiplatform

Resources

License

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors