Promote to Experimental.
+First draft based on XEP-0459.
++ There is a growing number of XMPP Extension Protocols (XEPs) that provide + different building blocks for XMPP-based applications. XMPP software + developers are confronted with the challenge of finding the right + combination of XEPs for a given application profile. Users need a way to + compare applications without resorting to comparing for individual XEP + numbers. +
++ This document defines XMPP application Categories based on + typical use cases (Core, Web, IM, Mobile) and Levels + (Core, Advanced) based on functionality in the respective category. For + each combination of those, the required XEPs are referenced. As the + protocol landscape changes over time, this document is updated roughly + once a year. +
++ For developers, this document provides guidance on which specifications + they need to consider when implementing an application of a certain kind. + By completing a compliance test or performing a self-assessment, they can + advertise their implementation as compliant with a given Category and + Level. +
++ For users, this provides an easy way to compare implementations based on + their respective advertised compliance levels and year. +
++ Unless explicitly noted, support for the listed specifications is REQUIRED + for compliance purposes. + A feature is considered supported if all comma separated feature providers + listed in the "Providers" column are implemented (unless otherwise noted). +
+The following changes were made to the Compliance Suites since &xep0459;:
+None.
+The following changes were made to the Compliance Suites since &xep0443;:
+The following changes were made to the Compliance Suites since &xep0423;:
+The following changes were made to the Compliance Suites since &xep0412;:
+Feature | +Server | +Client | +Advanced Server | +Advanced Client | +Providers | +
---|---|---|---|---|---|
Core features | +&yes; | +&yes; | +&yes; | +&yes; | +&rfc6120; |
+
TLS | +&yes; | +&yes; | +&yes; | +&yes; | +&rfc7590; | +
Direct TLS | +&no; | +&no; | +&yes; |
+ &yes; | +&xep0368; | +
Feature discovery | +&yes; | +&yes; | +&yes; | +&yes; | +&xep0030; | +
Feature broadcasts | +&no; | +&yes; | +&yes; | +&yes; | +&xep0115; | +
Server Extensibility | +&yes; | +N/A | +&yes; | +N/A | +&xep0114; | +
Event publishing | +&no; | +&no; | +&yes;&pubsubjid; | +&yes; | +&xep0163; | +
+ To be considered XMPP web compliant, all features from the core + compliance category must be met, as well as all features in this suite. +
+Feature | +Server | +Client | +Advanced Server | +Advanced Client | +Providers | +
---|---|---|---|---|---|
Web Connection Mechanisms | +&yes;&component; | +&yes;&onlyone; | +&yes;&component; | +&yes;&onlyone; | +&rfc7395;, &xep0206; (See also: &xep0124;) | +
Connection Mechanism Discovery | +&no; | +&yes; | +N/A | +&yes; | +&xep0156; | +
+ To be considered XMPP IM compliant, all features from the core + compliance category must be met, as well as all features in this suite. +
+Feature | +Server | +Client | +Advanced Server | +Advanced Client | +Providers | +
---|---|---|---|---|---|
Core features | +&yes; | +&yes; | +&yes; | +&yes; | +&rfc6121; | +
The /me Command | +N/A | +&yes; | +N/A | +&yes; | +&xep0245; | +
User Avatars | +N/A | +&no; | +N/A | +&yes;&nocli; | +&xep0084; | +
User Avatar Compatibility | +&no; | +&no; | +&yes; | +&yes;&nocli; | +&xep0398;, &xep0153; | +
vcard-temp | +&yes; | +&yes; | +&yes; | +&yes; | +&xep0054; | +
Outbound Message Synchronization | +&yes; | +&yes; | +&yes; | +&yes; | +&xep0280; | +
User Blocking | +&no; | +&no; | +&yes; | +&yes; | +&xep0191; | +
Group Chat | +&yes;&component; | +&yes;&usecases; | +&yes;&component; | +&yes;&usecases; | +&xep0045; |
+
Advanced Group Chat | +&no; | +&no; | +&yes;&component; | +&yes; | +&xep0048;, &xep0313; |
+
Persistent Storage of Private Data via PubSub | +&no; | +&no; | +&yes;&component; | +&yes; | +&xep0223; | +
Private XML Storage | +&no; | +&no; | +&yes;&component; | +&yes; | +&xep0049; (only recommended for legacy bookmarks support) | +
Stream Management | +&no; | +&no; | +&yes; | +&yes; | +&xep0198; | +
Message Acknowledgements | +N/A | +&no; | +N/A | +&yes; | +&xep0184; | +
History Storage / Retrieval | +&no; | +&no; | +&yes; | +&yes; | +&xep0313; | +
Chat States | +N/A | +&no; | +N/A | +&yes; | +&xep0085; | +
Message Correction | +N/A | +&no; | +N/A | +&yes; | +&xep0308; | +
File Upload | +&yes;&component; | +&yes; | +&yes;&component; | +&yes; | +&xep0363; | +
Direct File Transfer | +N/A | +&no; | +N/A | +&yes; | +&xep0234;, &xep0261; | +
+ Further specifications of note, which are not required for compliance: +
++ To be considered XMPP mobile compliant, all features from the core + compliance category must be met, as well as all features in this suite. +
+Feature | +Server | +Client | +Advanced Server | +Advanced Client | +Providers | +
---|---|---|---|---|---|
Stream Management | +&yes; | +&yes; | +&yes; | +&yes; | +&xep0198; | +
Client State Indication | +&yes; | +&yes; | +&yes; | +&yes; | +&xep0352; | +
Third Party Push Notifications | +&no; | +&no; | +&yes;&component; | +&yes; |
+ &xep0357; | +
+ Further specifications of note, which are not required for compliance: +
++ To be considered XMPP A/V calling compliant, all features from the core + compliance category must be met, as well as all features in this suite. +
+Feature | +Server | +Client | +Advanced Server | +Advanced Client | +Providers | +
---|---|---|---|---|---|
Call Setup | +N/A | +&yes; | +N/A | +&yes; | +&xep0167;, &xep0353; | +
Transport | +N/A | +&yes; | +N/A | +&yes; | +&xep0176; | +
Encryption | +N/A | +&yes; | +N/A | +&yes; | +&xep0320; | +
STUN/TURN server discovery | +&yes; | +&yes; | +&yes; | +&yes; | +&xep0215; | +
Quality and Performance improvements | +N/A | +&no; | +N/A | +&yes; | +&xep0293;, &xep0294;, &xep0338;, &xep0339; | +
This section outlines the protocol specifications that are relevant for + developers, but are not ready yet to be required for Compliance. + Developers are encouraged to implement those and + to share their experience and feedback.
++ Some of the protocol specifications referenced herein have their own + dependencies; developers need to consult the relevant specifications for + further information. +
++ This document introduces no additional security considerations above and + beyond those defined in the documents on which it depends. +
+This document requires no interaction with &IANA;.
+This document requires no interaction with the ®ISTRAR;.
++ The author would like to thank Guus der Kinderen, Dele Olajide, Marc + Laporte, Dave Cridland, Daniel Gultsch, Florian Schmaus, Tobias Markmann, + and Jonas Schäfer for their suggestions. +
+