Skip to content

Standards Compliance

xmppd implements the XMPP core protocol (RFC 6120/6121) and 19+ XEPs. Compliance is verified through automated interoperability testing with the XMPP Interop Testing framework (SINT v1.7.2).

Test Results#

  • SINT interop: 360/367 RFC 6121 tests pass (1 upstream test bug — SINT #166)
  • Unit tests: 744 tests, all pass
  • E2E tests: 48/48

Supported Standards#

Standard Description Level
RFC 6120 XMPP Core Full
RFC 6121 XMPP IM Full
XEP-0012 Last Activity Full
XEP-0030 Service Discovery Full
XEP-0045 Multi-User Chat Full
XEP-0054 vcard-temp Full
XEP-0077 In-Band Registration Full
XEP-0084 User Avatar (via PEP) Full
XEP-0085 Chat State Notifications Full
XEP-0092 Software Version Full
XEP-0115 Entity Capabilities Full
XEP-0160 Offline Message Storage Full
XEP-0163 Personal Eventing Protocol Partial
XEP-0184 Message Delivery Receipts Pass-through
XEP-0191 Blocking Command Full
XEP-0198 Stream Management Full
XEP-0199 XMPP Ping Full
XEP-0220 Server Dialback Full
XEP-0280 Message Carbons Full
XEP-0308 Last Message Correction Pass-through
XEP-0313 Message Archive Management Full
XEP-0333 Chat Markers Pass-through
XEP-0334 Message Processing Hints Pass-through
XEP-0352 Client State Indication Full
XEP-0359 Unique and Stable Stanza IDs Full
XEP-0402 PEP Native Bookmarks Full
XEP-0440 SASL Channel-Binding Type Full

Support Levels#

  • Full — complete implementation, tested with SINT and/or real clients
  • Partial — core functionality implemented, some optional features missing
  • Pass-through — server routes stanzas without interpretation; no server-side logic needed

Notes#

XEP-0163 (PEP): Supports publish, subscribe, auto-subscribe, auto-create, persistent items, and avatar metadata notifications. Not a full XEP-0060 PubSub service.

XEP-0198 (Stream Management): Supports enable, ack requests/responses, and full session resume with unacked stanza replay.

Pass-through XEPs: XEP-0184 (receipts), XEP-0308 (correction), XEP-0333 (chat markers), and XEP-0334 (hints) work because xmppd routes message child elements without stripping unknown namespaces.

Client Compatibility#

xmppd has been tested and verified with:

Client Platform Status
Conversations Android Full session verified
Gajim Windows / Linux Full session verified
Dino FreeBSD / Linux Full session verified
Profanity FreeBSD (terminal) 14/14 tests
Thunderbird Windows / Linux Full session verified
slixmpp Python library 23/23 automated tests