diff --git a/xep-0459.xml b/xep-0459.xml new file mode 100644 index 00000000..b981b050 --- /dev/null +++ b/xep-0459.xml @@ -0,0 +1,588 @@ + + +%ents; +Support can be enabled via an external component or an internal server module/plugin. If claiming compliance using such an addition, the necessary components/modules/plugins MUST be detailed."> +Support for the Entity Use Cases and Occupant Use Cases is REQUIRED; support for the remaining use cases is RECOMMENDED."> +Only one of the recommended providers must be implemented for compliance."> +Not required for command line or terminal based interfaces."> +While 'User Avatars' is more modern, 'vCard-Based Avatars' is more widely deployed. Although it is suggested that to maximise interoperability with existing software a client fully supports both it is sufficient to claim compliance with this suite if the support for 'vCard-Based Avatars' is read-only."> +While 'Personal Eventing Protocol' does not require all the features of 'Publish-Subscribe' to be available on the users' JIDs, and nor does this suite, it is desirable for this to be the case and it is expected that this will a requirement of future Compliance Suites."> + + +]> + + +
+ XMPP Compliance Suites 2022 + + This document defines XMPP application categories for different use cases + (Core, Web, IM, and Mobile), and specifies the required XEPs that client and + server software needs to implement for compliance with the use cases. + + &LEGALNOTICE; + 0459 + Experimental + Standards Track + Standards + + RFC 6120 + RFC 6121 + RFC 7395 + RFC 7590 + RFC 7622 + XEP-0030 + XEP-0045 + XEP-0048 + XEP-0049 + XEP-0084 + XEP-0085 + XEP-0114 + XEP-0115 + XEP-0124 + XEP-0163 + XEP-0191 + XEP-0198 + XEP-0206 + XEP-0223 + XEP-0249 + XEP-0280 + XEP-0313 + XEP-0352 + XEP-0368 + + + XEP-0443 + + + CS2022 + + Sonny + Piers + sonny@fastmail.net + sonny@jabberfr.org + + + 0.1.0 + 2021-06-22 + XEP Editor (jsc) + Accepted by vote of Council on 2021-05-26. + + + 0.0.1 + 2021-02-03 + sp + +

First draft based on XEP-0443.

+
+
+
+ +

+ 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 &xep0443;:

+
    +
  • Web category: +
      +
    • Core Client: required Connection Mechanism Discovery.
    • +
    +
  • +
+
+ +

The following changes were made to the Compliance Suites since &xep0423;:

+
    +
  • Introduced new category for A/V Calling.
  • +
  • IM Category: +
      +
    • Specifications of note: added &xep0393;, &xep0433;, &xep0424;, and &xep0425;
    • +
    +
  • +
+
+ +

The following changes were made to the Compliance Suites since &xep0412;:

+
    +
  • IM Category: +
      +
    • Core Client: added &xep0245;
    • +
    • Core Client and Server: added &xep0363;
    • +
    • Advanced Client: added &xep0234;, &xep0261;
    • +
    • Advanced Client and Server: added &xep0411;
    • +
    • Specifications of note: added &xep0077; and &xep0157;, &xep0392;, &xep0066; and &xep0385;
    • +
    +
  • +
  • Mobile Category: +
      +
    • Specifications of note: added &xep0286;
    • +
    +
  • +
  • Web Category: +
      +
    • Advanced Web: added &xep0156;
    • +
    +
  • +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureCore ServerCore ClientAdvanced ServerAdvanced ClientProviders
Core features&yes;&yes;&yes;&yes;&rfc6120; &rfc7622; is not listed due to the unclear interoperability impact of using PRECIS and Stringprep in the same ecosystem.
TLS&yes;&yes;&yes;&yes;&rfc7590;
Direct TLS&no;&no;&yes;Server support of XEP-0368 means having the ability to accept direct TLS connections.&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. +

+ + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureCore ServerCore ClientAdvanced ServerAdvanced ClientProviders
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. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureCore ServerCore ClientAdvanced ServerAdvanced ClientProviders
Core features&yes;&yes;&yes;&yes;&rfc6121;
The /me CommandN/A&yes;N/A&yes;&xep0245;
User AvatarsN/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;Implementations should take note that future versions of these compliance suites may rely on &xep0369; instead., &xep0249;
Advanced Group Chat&no;&no;&yes;&component;&yes;&xep0048;, &xep0313;Support for requesting history from a MUC archive as opposed to from the user's account., &xep0410;, &xep0411;
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 AcknowledgementsN/A&no;N/A&yes;&xep0184;
History Storage / Retrieval&no;&no;&yes;&yes;&xep0313;
Chat StatesN/A&no;N/A&yes;&xep0085;
Message CorrectionN/A&no;N/A&yes;&xep0308;
File Upload&yes;&component;&yes;&yes;&component;&yes;&xep0363;
Direct File TransferN/A&no;N/A&yes;&xep0234;, &xep0261;
+

+ Further specifications of note, which are not required for compliance: +

+
    +
  • For public IM networks: &xep0077; (should be supported, but not enabled in default server configurations) and &xep0157;
  • +
  • File uploads should be indicated using &xep0066;, optionally also using &xep0385;
  • +
  • &xep0392; for cross-client consistency of user names
  • +
  • &xep0393; for simple styling of plaintext messages that is loosely compatible with legacy IM networks
  • +
  • &xep0433; to improve the discovery of public rooms hosted on a domain
  • +
  • &xep0424; and &xep0425; for managing misbehavior in public rooms
  • +
+
+ +

+ To be considered XMPP mobile compliant, all features from the core + compliance category must be met, as well as all features in this suite. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureCore ServerCore ClientAdvanced ServerAdvanced ClientProviders
Stream Management&yes;&yes;&yes;&yes;&xep0198;
Client State Indication&yes;&yes;&yes;&yes;&xep0352;
Third Party Push Notifications&no;&no;&yes;&component;&yes;Only on platforms that disallow long-lasting background connections.&xep0357;
+

+ Further specifications of note, which are not required for compliance: +

+
    +
  • &xep0286;
  • +
+
+ +

+ 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. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureCore ServerCore ClientAdvanced ServerAdvanced ClientProviders
Call SetupN/A&yes;N/A&yes;&xep0167;, &xep0353;
TransportN/A&yes;N/A&yes;&xep0176;
EncryptionN/A&yes;N/A&yes;&xep0320;
STUN/TURN server discovery&yes;&yes;&yes;&yes;&xep0215;
Quality and Performance improvementsN/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. +

+
+
diff --git a/xep.ent b/xep.ent index 9d92fc83..d7f0bcb2 100644 --- a/xep.ent +++ b/xep.ent @@ -1622,3 +1622,4 @@ IANA Service Location Protocol, Version 2 (SLPv2) Templates Service Outage Status (XEP-0455) XEP-0455: Service Outage Status <https://xmpp.org/extensions/xep-0455.html>." > Content Rating Labels (XEP-0456) XEP-0456: Content Rating Labels <https://xmpp.org/extensions/xep-0456.html>." > Message Fancying (XEP-0457) XEP-0457: Message Fancying <https://xmpp.org/extensions/xep-0457.html>." > +XMPP Compliance Suites 2022 (XEP-0459) XEP-0459: XMPP Compliance Suites 2022 <https://xmpp.org/extensions/xep-0459.html>." >