Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JMAP Protocol Library

JMAP is a modern protocol trying to supersede CardDAV, CalDAV, IMAP, SMTP Submission and document handling in a more structured and well-defined way.

Design Principles

This library tries to keep as true to the official RFC wording as possible within the PHP ecosystem. It implements each JMAP-related RFC as an individual sub namespace which means an older and newer shape or behaviour can coexist as classes in different namespaces, possibly with the same basename. By design there is no judgement which version is right or better.

Application logic, storage concerns etc are kept outside of this library to avoid making it opinionated or tied to unstated assumptions.

This library is strongly typed potentially to a fault. It takes some lessons from the vCard/iCalendar/CalDAV implementations.

Collaborator concerns

While this library is intentionally decoupled from the wider framework, there are some boundaries better handled by collaborators. HTTP message handling is implemented according to PSR-7 and its siblings. Horde's implementation of choice is horde/http but library design should not prevent you from using guzzle or whatever PSR-7 implementation you prefer.

MIME is handled by the horde/mime library.

OAuth 2.0 / OIDC / JWT handling is decoupled as much as possible but assumes horde/jwt and horde/oauth as the reference collaborator.

Client and server

While intended primarily as building blocks for a JMAP server, this library also provides primitives for building a JMAP client.

About

Building blocks for the JMAP protocol

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages