mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-13 21:05:09 -05:00
356 lines
12 KiB
XML
356 lines
12 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<!DOCTYPE xep SYSTEM 'xep.dtd' [
|
|
<!ENTITY % ents SYSTEM 'xep.ent'>
|
|
%ents;
|
|
]>
|
|
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
|
|
<xep>
|
|
<header>
|
|
<title>XMPP Compliance Suites 2016</title>
|
|
<abstract>
|
|
This document defines XMPP protocol compliance levels for 2016.
|
|
</abstract>
|
|
&LEGALNOTICE;
|
|
<number>0375</number>
|
|
<status>Experimental</status>
|
|
<type>Standards Track</type>
|
|
<sig>Standards</sig>
|
|
<dependencies>
|
|
<spec>RFC 6120</spec>
|
|
<spec>RFC 6121</spec>
|
|
<spec>RFC 6122</spec>
|
|
<spec>RFC 7395</spec>
|
|
<spec>XEP-0030</spec>
|
|
<spec>XEP-0045</spec>
|
|
<spec>XEP-0084</spec>
|
|
<spec>XEP-0114</spec>
|
|
<spec>XEP-0115</spec>
|
|
<spec>XEP-0124</spec>
|
|
<spec>XEP-0163</spec>
|
|
<spec>XEP-0191</spec>
|
|
<spec>XEP-0198</spec>
|
|
<spec>XEP-0206</spec>
|
|
<spec>XEP-0280</spec>
|
|
<spec>XEP-0313</spec>
|
|
<spec>XEP-0352</spec>
|
|
<spec>XEP-0369</spec>
|
|
</dependencies>
|
|
<supersedes>
|
|
<spec>XEP-0270</spec>
|
|
</supersedes>
|
|
<supersededby/>
|
|
<shortname>CS2016</shortname>
|
|
&stpeter;
|
|
&sam;
|
|
<revision>
|
|
<version>0.3</version>
|
|
<date>2016-07-20</date>
|
|
<initials>ssw</initials>
|
|
<remark>
|
|
<p>Don't require both BOSH and Websockets.</p>
|
|
</remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.2</version>
|
|
<date>2016-07-11</date>
|
|
<initials>ssw</initials>
|
|
<remark>
|
|
<p>
|
|
<ul>
|
|
<li>Add rationale.</li>
|
|
<li>Refactor suites to focus less on XEPs and more on features.</li>
|
|
</ul>
|
|
</p>
|
|
</remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.1.1</version>
|
|
<date>2016-05-25</date>
|
|
<initials>ssw</initials>
|
|
<remark><p>Add mobile compliance suites.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.1.0</version>
|
|
<date>2016-05-10</date>
|
|
<initials>XEP Editor (ssw)</initials>
|
|
<remark><p>Initial published version approved by the XMPP Council.</p></remark>
|
|
</revision>
|
|
<revision>
|
|
<version>0.0.1</version>
|
|
<date>2015-09-30</date>
|
|
<initials>ssw</initials>
|
|
<remark><p>First draft.</p></remark>
|
|
</revision>
|
|
</header>
|
|
<section1 topic='Introduction' anchor='intro'>
|
|
<p>
|
|
The &XSF; defines protocol suites for the purpose of compliance testing
|
|
and software certification. This document specifies the 2016 compliance
|
|
levels for XMPP clients and servers; it is hoped that this document will
|
|
advance the state of the art, and provide guidence and eventual
|
|
certification to XMPP client and server authors. Unless explicitly noted,
|
|
support for the listed specifications is REQUIRED for compliance purposes.
|
|
</p>
|
|
</section1>
|
|
<section1 topic='Compliance Levels' anchor='levels'>
|
|
<section2 topic='Core Compliance Suite' anchor='core'>
|
|
<table caption='XMPP Core Compliance Levels for 2016'>
|
|
<tr>
|
|
<th>Feature</th>
|
|
<th>Core Server</th>
|
|
<th>Core Client</th>
|
|
<th>Advanced Server</th>
|
|
<th>Advanced Client</th>
|
|
<th>Providers</th>
|
|
</tr>
|
|
<tr>
|
|
<td>&rfc6120; Compliance</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>N/A</td>
|
|
</tr>
|
|
<tr>
|
|
<td>&rfc6122; Compliance</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>N/A</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Feature discovery</strong></td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0030;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Feature broadcasts</strong></td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓*</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0115;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Server Extensibility</strong></td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>N/A</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>N/A</td>
|
|
<td>&xep0114;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Event publishing</strong></td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0163;</td>
|
|
</tr>
|
|
</table>
|
|
</section2>
|
|
<section2 topic='Web Compliance Suite' anchor='web'>
|
|
<p>
|
|
To be considered XMPP web compliant, all line items from the core
|
|
compliance suite above must be met, as well as all items in this suite.
|
|
</p>
|
|
<table caption='XMPP Web Compliance Levels for 2016'>
|
|
<tr>
|
|
<th>Feature</th>
|
|
<th>Core Server</th>
|
|
<th>Core Client</th>
|
|
<th>Advanced Server</th>
|
|
<th>Advanced Client</th>
|
|
<th>Providers</th>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Web Connection Mechanisms</strong></td>
|
|
<td align='center'>✓†</td>
|
|
<td align='center'>✓§</td>
|
|
<td align='center'>✓†</td>
|
|
<td align='center'>✓§</td>
|
|
<td>&rfc7395;, &xep0124; and &xep0206;</td>
|
|
</tr>
|
|
</table>
|
|
</section2>
|
|
<section2 topic='IM Compliance Suite' anchor='im'>
|
|
<p>
|
|
To be considered XMPP IM compliant, all line items from the core
|
|
compliance suite above must be met, as well as all items in this suite.
|
|
</p>
|
|
<table caption='XMPP IM Compliance Levels for 2016'>
|
|
<tr>
|
|
<th>Feature</th>
|
|
<th>Core Server</th>
|
|
<th>Core Client</th>
|
|
<th>Advanced Server</th>
|
|
<th>Advanced Client</th>
|
|
<th>Providers</th>
|
|
</tr>
|
|
<tr>
|
|
<td>&rfc6121; Compliance</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>N/A</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>User Avatars</strong></td>
|
|
<td align='center'>N/A</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>N/A</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0084;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Outbound Message Synchronization</strong></td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0280;, &xep0313;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>User Blocking</strong></td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0191;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Group Chat</strong></td>
|
|
<td align='center'>✓†</td>
|
|
<td align='center'>✓‡</td>
|
|
<td align='center'>✓†</td>
|
|
<td align='center'>✓‡</td>
|
|
<td>&xep0045;; &xep0369;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Bookmarks</strong></td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✓†</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0048;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Session Resumption</strong></td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0198;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Stanza Acknowledgements</strong></td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0198;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>History Storage / Retrieval</strong></td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0313;</td>
|
|
</tr>
|
|
</table>
|
|
</section2>
|
|
<section2 topic='Mobile Compliance Suite' anchor='mobile'>
|
|
<p>
|
|
To be considered XMPP mobile compliant, all line items from the core
|
|
compliance suite above must be met, as well as all items in this suite.
|
|
</p>
|
|
<table caption='XMPP Mobile Compliance Levels for 2016'>
|
|
<tr>
|
|
<th>Feature</th>
|
|
<th>Core Server</th>
|
|
<th>Core Client</th>
|
|
<th>Advanced Server</th>
|
|
<th>Advanced Client</th>
|
|
<th>Providers</th>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Session Resumption</strong></td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0198;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Stanza Acknowledgements</strong></td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0198;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Client State Indiciation</strong></td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0352;</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Third Party Push Notifications</strong></td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✕</td>
|
|
<td align='center'>✓†</td>
|
|
<td align='center'>✓</td>
|
|
<td>&xep0357;</td>
|
|
</tr>
|
|
</table>
|
|
</section2>
|
|
<p>* Necessary to support Personal Eventing Protocol (PEP).</p>
|
|
<p>
|
|
† Support can be enabled via an external component or an internal
|
|
server module/plugin.
|
|
</p>
|
|
<p>
|
|
‡ Support for the Entity Use Cases and Occupant Use Cases is
|
|
REQUIRED; support for the remaining use cases is RECOMMENDED.
|
|
</p>
|
|
<p>
|
|
§ Only one of the recommended providers must be implemented for
|
|
compliance.
|
|
</p>
|
|
</section1>
|
|
<section1 topic='Implementation Notes' anchor='impl'>
|
|
<p>
|
|
Some of the protocol specifications referenced herein have their own
|
|
dependencies; developers need to consult the relevant specifications for
|
|
further information.
|
|
</p>
|
|
</section1>
|
|
<section1 topic='Security Considerations' anchor='security'>
|
|
<p>
|
|
This document introduces no additional security considerations above and
|
|
beyond those defined in the documents on which it depends.
|
|
</p>
|
|
</section1>
|
|
<section1 topic='IANA Considerations' anchor='iana'>
|
|
<p>This document requires no interaction with &IANA;.</p>
|
|
</section1>
|
|
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
|
|
<p>This document requires no interaction with the ®ISTRAR;.</p>
|
|
</section1>
|
|
<section1 topic='Acknowledgements' anchor='ack'>
|
|
<p>
|
|
The author would like to thank Guus der Kinderen, Dele Olajide, Marc
|
|
Laporte, Dave Cridland and Daniel Gultsch for their suggestions.
|
|
</p>
|
|
</section1>
|
|
</xep>
|