diff --git a/xep-0479.xml b/xep-0479.xml new file mode 100644 index 00000000..365b75d0 --- /dev/null +++ b/xep-0479.xml @@ -0,0 +1,603 @@ + + +%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 2023 + + 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; + 0479 + Experimental + Standards Track + Standards + Council + + 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-0402 + + + XEP-0459 + + + CS2023 + + Georg + Lukas + georg@op-co.de + georg@yax.im + + + 0.1.0 + 2023-05-04 + XEP Editor: ks + +

Promote to Experimental.

+
+
+ + 0.0.1 + 2023-01-25 + gl + +

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;:

+
    +
  • Renamed "Core Client" and "Core Server" to "Client" and "Server"
  • +
  • Web category: +
      +
    • Client: required Connection Mechanism Discovery.
    • +
    +
  • +
  • IM category: +
      +
    • Advanced Group Chat: replaced &xep0411; with &xep0402; conversion
    • +
    +
  • +
+
+ +

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: +
      +
    • Client: added &xep0245;
    • +
    • 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;
    • +
    +
  • +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureServerClientAdvanced 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. +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureServerClientAdvanced 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., &xep0402;Usage of which should only happen when the 'urn:xmpp:bookmarks:1#compat' is exposed by the server, otherwise &xep0049; should be used instead., &xep0410;
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. +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FeatureServerClientAdvanced 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 bb0614e1..f86c2b7a 100644 --- a/xep.ent +++ b/xep.ent @@ -1674,3 +1674,4 @@ IANA Service Location Protocol, Version 2 (SLPv2) Templates Pubsub Signing: OpenPGP Profile (XEP-0476) XEP-0476: Pubsub Signing: OpenPGP Profile <https://xmpp.org/extensions/xep-0476.html>." > Pubsub Targeted Encryption (XEP-0477) XEP-0477: Pubsub Targeted Encryption <https://xmpp.org/extensions/xep-0477.html>." > Stream Limits Advertisement (XEP-0478)XEP-0478: Stream Limits Advertisement <https://xmpp.org/extensions/xep-0478.html>."> +XMPP Compliance Suites 2023 (XEP-0479)XEP-0479: XMPP Compliance Suites 2023 <https://xmpp.org/extensions/xep-0479.html>.">