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 |