Skip to content
ruff edited this page Nov 7, 2020 · 5 revisions

Welcome to the DJabberd wiki!

DJabberd - XMPP server in Perl

For general information look at README

See XEP Coverage for the list of available plugins covering various extensions.

Core Support

DJabberd was written to be compliant with older RFC3920/21 mostly, however newer RFC6120/6121 is compatible in many places with older specification and with a time DJabberd has grown to support many missing elements.

DJabberd does maintain compatibility with obsolete RFC3920/3921 (aka stream v0.9) as well as almost all mandatory features outlined in RFC6120 and RFC6121. However since DJabberd core implements only the foundation for XMPP it may not directly support all of the features of the respective RFCs - instead the implementation could be delegated to plugins.

RFC Status Description
RFC3920 Supported (Obsolete) XMPP Core - the base of DJabberd implementation
RFC3921 Supported (Obsolete) XMPP IM - the base of DJabberd implementation
RFC6120 Supported XMPP Core - Since version 0.90 should be mostly compliant except the Missing Features below
RFC6121 Supported XMPP IM - Since version 0.90 should be mostly compliant except the Missing Features below
RFC6122 Supported (Obsolete) XMPP Address Format
RFC7622 Partially XMPP Address Format - still follows 6122, needs facelift to the latest stringprep/PRECIS
RFC7712 Partially XMPP Domain Name Association (DNA) - Only supports PKIX and Dialback proofs (as per XMPP Core)
RFC7950 Supported Recommendations for using TLS with XMPP. DJabberd follows those recommendations (at least gives controls for system administrator to apply them)
RFC8553 Partially The SRV record lookup as per defined registery is used to discover TCP endpoint. TXT lookup is not supported.

Optional Features support

Following optional features are supported by the core implementation:

  • S2S Connection - disabled by default but are shipped out of the box with Server Dialback [XEP-0220] and SASL EXTERNAL [XEP-0178] authentication
  • Roster Versioning - the core supports ver attribute and handles versioned roster items, however RosterStorage must support them as well.
  • SCRAM-SHA-256-PLUS - RFC 6120 mandates SCRAM-SHA-1 at the least, -PLUS is supported with tls-unique, tls-server-end-point and tls-exporter binding types.

Missing features:

  • Pre-approved subscription