Comparison of XMPP clients
The following is a general comparison of XMPP clients, which are instant messaging designed for decentralized, standarized, extensible, interoperable, federated, network using the XMPP protocol, which are open standard.
The architecture of the XMPP network is similar to email; anyone can run their own XMPP server and there is no central master server. This federated open system approach allows users to interoperate with others on any server using a 'JID' user account, similar to an email address.
General
Basic general information about the XMPP messengers: creator/company, license, among others.
Client | Developer | Initial release | Latest release | License | User Interface | Programming language |
---|---|---|---|---|---|---|
AstraChat[1][2] | Rockliffe Systems | Proprietary | GUI | Unknown | ||
BeagleIM[3] | Tigase, Inc. | GPL-3.0 | GUI | Swift | ||
BitlBee | BitlBee team, with Wilmer van der Gaast as Lead Developer | 09.09.2002 | GPL-2.0 | TUI | C | |
Bombus | Eugene Stahov (evgs) | 25.08.2008 | GPL-2.0-or-later | GUI | Java, C++ | |
ChatSecure | Chris Ballinger, David Chiles, and contributors | 1.0.2 / February 27, 2012 | 5.0.2 Apr 16, 2020 | GPL-3.0-or-later | GUI | Objective-C, Swift |
Cisco Jabber[4] | Cisco Systems, Inc. | Proprietary | GUI | Unknown | ||
Conversations[5][6] | Daniel Gultsch | 24.03.2014 | GPL-3.0 | GUI | Java | |
Converse.js[7] | MPL-2.0 | Web | JavaScript | |||
Dino[8] | Dino team | v0.3.0 12 Feb 2022 | GPL-3.0 | GUI | Vala | |
Gajim[9][10] | Gajim Developers | 21.05.2004 | GPL-3.0-only | GUI | Python | |
JSXC[11] | Klaus Herberth, Marcel Waldvogel, Daniel Scharon, Tobia De Koninck | MIT | Web | JavaScript | ||
Kaidan[12] | Kaidan team | Feb 26, 2017 | 0.8.0 28 May 2021 | GPL-3.0-or-later, MIT, MIT-apple, apache 2.0, CC-BY-SA-4.0 | GUI | C++ |
Kopete | KDE | GPL-2.0-or-later | GUI | C++ (Qt) | ||
Miranda NG[13] | Miranda IM Project | ??.05.2012 | GPL-2.0-or-later | GUI | C, C++ | |
Monal IM[14] | 2011 | BSD 2-Clause License | GUI | Objective-C | ||
Movim | Timothée Jaussoin | 2.0 19 February | AGPL-3.0-or-later | GUI | PHP | |
Pidgin | 31.12.1998 | GPL-2.0-or-later | GUI/TUI | C | ||
Profanity | James Booth, Michael Vetter | ??.08.2012 | 0.12.1 4 april 2022 | GPL-3.0 | TUI | C |
Psi+[15] | The Psi Team | 7.07.2001 | GPL-2.0-or-later | GUI | C++ (Qt) | |
Libervia (formerly Salut à Toi) | 2008 | 22 Mar 2022 | AGPL-3.0-or-later | GUI | Python | |
SiskinIM[16] | Tigase, Inc | 7.2 5 Apri 2022 | GPL-3.0 | GUI | Swift | |
spark | Per Wendel | Apache 2.0 | GUI | Java | ||
Tkabber | The Tkabber Team | 2002 | 1.1.2 05/28/2015 | GNU GPL | GUI | Tcl/Tk |
yaxim[17] | Georg Lukas | 2009-12-29 | 2017-03-15 | GPL-3.0 | GUI | Java |
Xabber | Redsolition OÜ | 2.6.6 / 7 October 2019 | GPL-3.0-or-later | GUI | Java | |
slixmpp (lib.) | Nathan Fritz | MIT | Library | Python | ||
Qxmpp (lib.) | Library | C++ | ||||
aioxmpp (lib.) | Library | Python 3 | ||||
Tigase swift (lib.) | AGPLv3 | Library | Swift | |||
XMPPframerwork (lib.) | Public domain | Library | Objective-C | |||
Client | Developer | Initial release | Latest release | License |
Operating system support
The operating systems the messengers can run on without emulators or compatibility layers
Client | Operating system | |||||||
---|---|---|---|---|---|---|---|---|
Windows | macOS | Linux | Web | Android | iOS | BSD | Other | |
AstraChat | Yes | Yes | Yes | No | Yes | Yes | No | BlackBerry 10 |
beagle IM | No | Yes | No | No | No | No | No | |
BitlBee | Yes | Yes | Yes | Yes[18] | No | No | Yes | AmigaOS |
Bombus | No | No | No | No | No | No | No | JavaME, .NET Framework |
ChatSecure | No | No | No | No | No | Yes | No | |
Cisco Jabber | Yes | Yes | No | Yes | Yes | Yes | No | |
Conversations | No | No | No | No | Yes | No | No | |
converse.js | Yes | Yes | Yes | Yes | No | No | No | |
Dino | No | No | Yes | No | No | No | Yes | |
Gajim | Yes | No | Yes | No | No | No | Yes | |
JSXC | No | No | No | Yes | No | No | No | |
Kaidan | Yes | Yes | Yes | Yes | Yes | Yes | No | Ubuntu Touch |
Kopete | Yes | No | Yes | No | No | No | No | |
Miranda NG | Yes | No | No | No | No | No | No | |
Monal IM | No | Yes | No | No | No | Yes | No | |
Movim | No | No | No | Yes | No | No | No | |
Pidgin | Yes | Yes | Yes | No | No | No | Yes | Solaris, Illumos |
Profanity | Yes | Yes | Yes | No | Yes | No | Yes | |
Psi+ | Yes | Yes | Yes | No | No | No | No | haiku |
Salut à Toi[19] | No | No | Yes | Yes | Yes | No | No | |
SiskinIM | No | No | No | No | No | Yes | No | |
spark | Yes | Yes | Yes | Yes | No | No | No | |
Tkabber | Yes | Yes | Yes | No | No | No | Yes | Solaris |
yaxim | No | No | No | No | Yes | No | No | |
Xabber | No | No | No | No | Yes | No | No | |
Windows | macOS | Linux | Web | Android | iOS | BSD | Other |
Features
The table below details the level of support for the requirements set by XEP-0459: XMPP Compliance Suites 2022.
Core Compliance Suite
The core compliance level includes full support of the XMPP RFC's/XEP's as well as the most common extensions.
Core client
Client | Core features (RFC 6120) |
TLS (RFC 7590) |
Service Discovery (XEP-0030) |
Entity Capabilities (XEP-0115) |
---|---|---|---|---|
XEP status | N/A | N/A | Final | Stable |
AstraChat[20] | Yes | ? | ? | ? |
BeagleIM[21] | ? | ? | ? | ? |
BitlBee[22] | ? | ? | ? | ? |
Bombus[23] | ? | ? | Yes | Yes |
ChatSecure[24][25][26][27][28][29] | ? | ? | ? | ? |
Cisco Jabber[30] | ? | ? | Yes | Yes |
Conversations[31] | Yes | Yes | Yes | Yes |
Converse.js[32] | ? | ? | Yes | Yes |
Dino[33][34] | Yes | Yes | Yes | Yes |
Gajim[35] | Yes | Yes | Yes | Yes |
JSXC[36] | Yes | ? | Yes | Yes |
Kaidan[37] | Yes | ? | Yes | ? |
Kopete[38] | ||||
Miranda NG[39] | ? | ? | Yes | Yes |
Monal IM[40] | Yes | Yes | Yes | Yes |
Movim[41] | Yes | Yes | Yes | Yes |
Pidgin[42] | ? | ? | Yes | Yes |
Profanity[43][44] | Yes | Yes | Yes | Yes |
Psi+[45] | ? | ? | Yes | Yes |
Salut à Toi[46] | ? | ? | ? | Yes |
SiskinIM[47] | ? | ? | ? | ? |
Spark[48] | ? | ? | ? | ? |
Tkabber[49] | ? | ? | Yes | ? |
Yaxim[50] | ? | ? | Yes | Yes |
Xabber[51][52][53] | ? | ? | ? | Yes |
slixmpp (lib.)M[54] | Yes | Yes | Yes | Yes |
Qxmpp (lib.)[55] | ? | ? | Yes | Yes |
aioxmpp (lib.)[56] | ||||
Tigase swift (lib.)[57] | ||||
XMPPframerwork (lib.)[58] | ||||
Client | Core features ( RFC 6120]) |
TLS (RFC 7590) |
Service Discovery (XEP-0030) |
Entity Capabilities (XEP-0115) |
Advanced client
Client | SRV records for XMPP over TLS (XEP-0368) |
Personal Eventing Protocol (XEP-0163) |
---|---|---|
XEP status | Stable | Stable |
AstraChat | ? | ? |
BeagleIM | ? | ? |
BitlBee | ? | ? |
Bombus | ? | Yes |
ChatSecure | ? | ? |
Cisco Jabber | ? | Yes |
Conversations | Yes | Yes |
Converse.js | ? | Partial |
Dino | Yes | Yes |
Gajim | Yes | Yes |
JSXC | ? | ? |
Kaidan | ? | ? |
Kopete | ||
Miranda NG | ? | Yes |
Monal IM | Yes | Yes |
Movim | Yes | Yes |
Pidgin | ? | Yes |
Profanity | ? | ? |
Psi+ | ? | Yes |
Salut a toi | ? | Yes |
SiskinIM | ? | ? |
Spark | ? | ? |
Tkabber | ? | ? |
Yaxim | ? | ? |
Xabber | ? | ? |
slixmpp (lib.) | ? | Yes |
Qxmpp (lib.) | ||
aioxmpp (lib.) | ||
Tigase swift (lib.) | ||
XMPPframerwork (lib.) | ||
Client | Direct TLS (XEP-0368) |
Event publishing (XEP-0163) |
Web Compliance Suite
The web compliance level incudes all features from the core compliance category as well as all features in this suite.
Core client
Web Connection Mechanisms | Connection Mechanism Discovery | |||
---|---|---|---|---|
Client | (XMPP) Subprotocol for WebSocket (RFC 7395) |
Bidirectional-streams Over Synchronous HTTP (BOSH) (XEP-0206) |
BOSH (XEP-0124) |
Discovering Alternative XMPP Connection Methods (XEP-0156) |
XEP status | N/A | N/A | Stable | Stable |
AstraChat | ? | ? | ? | ? |
BeagleIM | ? | ? | ? | ? |
BitlBee | ? | ? | ? | ? |
Bombus | ? | ? | ? | ? |
ChatSecure | ? | ? | ? | ? |
Cisco Jabber | ? | ? | Yes | ? |
Conversations | ? | ? | ? | ? |
Converse.js | Yes | Yes | Yes | Yes |
Dino | ? | ? | ? | ? |
Gajim | Yes | ? | ? | Partial[Note 1] |
JSXC | ? | Yes | Yes | ? |
Kaidan | ? | ? | ? | ? |
Kopete | ||||
Miranda NG | ? | ? | ? | ? |
Monal IM | ? | ? | ? | ? |
Movim | ? | Yes | Yes | ? |
Pidgin | ? | Yes | Yes | Partial |
Profanity | ? | ? | ? | ? |
Psi | ? | ? | ? | ? |
Salut a toi | ? | ? | ? | ? |
SiskinIM | ? | ? | ? | ? |
Spark | ? | ? | ? | ? |
Tkabber | ? | ? | ? | ? |
Yaxim | ? | ? | ? | ? |
Xabber | ? | ? | ? | ? |
slixmpp (lib.) | ? | ? | ? | ? |
Qxmpp (lib.) | ||||
aioxmpp (lib.) | ||||
Tigase swift (lib.) | ||||
XMPPframerwork (lib.) | ||||
Client | (XMPP) Subprotocol for WebSocket (RFC 7395) |
XMPP Over BOSH (XEP-0206) |
BOSH (XEP-0124) |
Discovering Alternative XMPP Connection Methods (XEP-0156) |
IM Compliance Suite
The IM compliance level incudes all features from the core compliance category as well as all features in this suite.
Core client
Client | Core features (RFC 6121) |
The /me Command (XEP-0245) |
vcard-temp (XEP-0054) |
Message Carbons (XEP-0280) |
Multi-User Chat (XEP-0045) |
Direct MUC Invitations (XEP-0249) |
HTTP File Upload (XEP-0363) |
---|---|---|---|---|---|---|---|
XEP Status | N/A | Active | Active | Stable | Stable | Stable | Stable |
AstraChat | ? | ? | Yes | ? | Yes | ? | ? |
BeagleIM | ? | ? | ? | ? | ? | ? | ? |
BitlBee | ? | ? | ? | ? | Yes | ? | ? |
Bombus | ? | ? | Yes | ? | Yes | ? | ? |
ChatSecure | ? | ? | ? | ? | ? | ? | Yes |
Cisco Jabber | ? | ? | Yes | ? | Yes | ? | ? |
Conversations | Yes | Yes | Partial | Yes | Yes | Yes | Yes |
Converse.js | ? | Yes | Yes | Yes | Yes | Yes | Yes |
Dino | Yes | Yes | Partial[Note 1] | Yes | Partial | Partial[Note 1] | Yes |
Gajim | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
JSXC | Yes | Yes | Yes | Yes | Yes | ? | Yes |
Kaidan | Yes | ? | Yes | Yes | ? | ? | Yes |
Kopete | |||||||
Miranda NG | ? | Yes | Yes | Yes | Yes | Yes | Yes |
Monal IM | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Movim | Yes | Yes | Yes | Yes | Yes | ? | Yes |
Pidgin | Yes | Yes | Yes | ? | Yes | Yes | ? |
Profanity | Yes | Yes | ? | Yes | Yes | Yes | Yes |
Psi+ | ? | ? | Yes | Yes | Yes | Yes | Yes |
Salut a toi | ? | ? | Yes | ? | Yes | Yes | Yes |
SiskinIM | ? | ? | ? | ? | ? | ? | ? |
Spark | ? | ? | ? | Yes | Yes | ? | ? |
Tkabber | ? | ? | Yes | ? | ? | ? | ? |
Yaxim | ? | ? | ? | Yes | Yes | Yes | Yes |
Xabber | ? | ? | Yes | Yes | Partial | ? | Yes |
slixmpp (lib.) | Yes | ? | Yes | Yes | Partial style="background:#9EFF9E;vertical-align:middle;text-align:center;" class="table-yes"|Yes | Yes | |
Qxmpp (lib.) | |||||||
aioxmpp (lib.) | |||||||
Tigase swift (lib.) | |||||||
XMPPframerwork (lib.) | |||||||
Client | Core features (RFC 6121) |
The /me Command (XEP-0245) |
vcard-temp (XEP-0054) |
Message Carbons (XEP-0280) |
Multi-User Chat (XEP-0045) |
Direct MUC Invitations (XEP-0249) |
HTTP File Upload (XEP-0363) |
Advanced client
Client | User Avatars (XEP-0084) |
User Avatar to vCard-Based Avatars Conversion (XEP-0398) |
vCard-Based Avatars (XEP-0153) |
Blocking Command (XEP-0191) |
Bookmark Storage (XEP-0048) |
Message Archive Management (XEP-0313) |
PEP Native Bookmarks (XEP-0402) |
MUC Self-Ping (Schrödinger's Chat) (XEP-0410) |
Best Practices for Persistent Storage of Private Data via Publish-Subscribe (XEP-0223) |
---|---|---|---|---|---|---|---|---|---|
XEP status | Stable | Deferred | Active | Stable | Deprecated | Stable | Stable | Stable | Active |
AstraChat | ? | ? | Yes | Yes | ? | ? | ? | ? | ? |
BeagleIM | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
BitlBee | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Bombus | ? | ? | Yes | ? | Yes | ? | ? | ? | ? |
ChatSecure | ? | ? | ? | ? | Yes | Yes | ? | ? | ? |
Cisco Jabber | ? | ? | ? | ? | ? | ? | ? | ? | ? |
conversations | Yes | Yes | Partial | Yes | Yes | Yes | ? | Yes | Yes |
Converse.js | ? | ? | ? | ? | Yes | Yes | ? | ? | ? |
Dino | Yes | Yes | Deprecated[Note 1] | Yes | Yes | Partial[Note 1] | Yes | Yes | Yes |
gajim | Yes | Yes | Yes | Yes | Yes | Yes | ? | ? | Yes |
JSXC | ? | ? | Yes | ? | Yes | Yes | ? | ? | ? |
Kaidan | ? | ? | Yes | ? | ? | Yes | ? | ? | ? |
Kopete | |||||||||
Miranda NG | ? | ? | Yes | ? | Yes | Yes | ? | ? | ? |
Monal IM | Yes | ? | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Movim | Yes | ? | Yes | ? | Yes | Yes | Yes | ? | ? |
Pidgin | Yes | ? | Yes | Yes | ? | ? | ? | ? | ? |
Profanity | ? | ? | ? | Yes | Yes | ? | ? | ? | |
Psi+ | Yes | ? | Yes | ? | Yes | ? | ? | ? | ? |
Salut a toi | ? | ? | Yes | ? | Yes | Yes | ? | ? | ? |
SiskinIM | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Spark | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Tkabber | ? | ? | ? | ? | Yes | ? | ? | ? | ? |
Yaxim | In Development | ? | In Development | ? | ? | Yes | ? | Yes | ? |
Xabber | ? | ? | Yes | Yes | Yes | Yes | ? | ? | ? |
slixmpp (lib.) | Yes | ? | Yes | Yes | Yes | Yes | ? | ? | Yes |
Qxmpp (lib.) | |||||||||
aioxmpp (lib.) | |||||||||
Tigase swift (lib.) | |||||||||
XMPPframerwork (lib.) | |||||||||
Client | User Avatar (XEP-0084) |
User Avatar to vCard-Based Avatars Conversion (XEP-0398) |
vCard-Based Avatars (XEP-0153) |
Blocking Command (XEP-0191) |
Bookmark Storage (XEP-0048) |
Message Archive Management (XEP-0313) |
PEP Native Bookmarks (XEP-0402) |
MUC Self-Ping (Schrödinger's Chat) (XEP-0410) |
Best Practices for Persistent Storage of Private Data via Publish-Subscribe (XEP-0223) |
Advanced client (cont.)
Client | Private XML Storage (XEP-0049)[warning 1] | Stream Management (XEP-0198) | Message Delivery Receipts (XEP-0184) | Chat State Notifications (XEP-0085) | Last Message Correction (XEP-0308) | Jingle File Transfer (XEP-0234) | Jingle In-Band Bytestreams Transport Method (XEP-0261) |
---|---|---|---|---|---|---|---|
XEP status | Active | Stable | Stable | Final | Stable | Deferred | Stable |
AstraChat | ? | Yes | Yes | Yes | ? | ? | ? |
BeagleIM | ? | ? | ? | ? | Yes | ? | ? |
BitlBee | ? | ? | ? | Yes | ? | ? | ? |
Bombus | Yes | ? | Yes | Yes | ? | ? | ? |
ChatSecure | ? | ? | Yes | Yes | ? | ? | ? |
Cisco Jabber | ? | ? | ? | ? | ? | ? | ? |
conversations | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Converse.js | ? | Yes | Yes | Yes | Yes | ? | ? |
Dino | Yes | Yes | Yes | Yes | Yes | Partial | Yes |
gajim | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
JSXC | Yes | ? | Yes | Yes | ? | Yes | ? |
Kaidan | ? | ? | ? | Partial | ? | ? | ? |
Kopete | |||||||
Miranda NG | Yes | Yes | Partial | Yes | ? | ? | ? |
Monal IM | ? | Yes | Yes | Yes | Yes | Yes | Yes |
Movim | Yes | ? | Yes | Yes | Yes | ? | ? |
Pidgin | ? | ? | ? | Yes | ? | ? | ? |
Profanity | ? | ? | Yes | Yes | Yes | Yes | ? |
Psi+ | Yes | Yes | Yes | Yes | Yes | Yes | ? |
Salut a toi | Yes | ? | ? | Yes | ? | Yes | Yes |
SiskinIM | ? | ? | ? | ? | Yes | ? | ? |
Spark | ? | ? | ? | Yes | ? | ? | ? |
Tkabber | Yes | ? | ? | Yes | ? | ? | ? |
Yaxim | ? | Yes | Yes | ? | Yes | ? | ? |
Xabber | ? | Yes | Yes | Yes | ? | ? | ? |
slixmpp (lib.) | Yes | Yes | Yes | Yes | Yes | ? | ? |
Qxmpp (lib.) | |||||||
aioxmpp (lib.) | |||||||
Tigase swift (lib.) | |||||||
XMPPframerwork (lib.) | |||||||
Client | Private XML Storage (XEP-0049)[warning 1] | Stream Management (XEP-0198) | Message Delivery Receipts (XEP-0184) | Chat State Notifications (XEP-0085) | Last Message Correction (XEP-0308) | Jingle File Transfer (XEP-0234) | Jingle In-Band Bytestreams Transport Method (XEP-0261) |
Further specifications of note, which are not required for compliance:
Client | In-Band Registration (XEP-0077)[warning 2] |
Contact Addresses for XMPP Services (XEP-0157) |
Out-of-Band Data (XEP-0066) |
Stateless Inline Media Sharing (SIMS) (XEP-0385) |
Consistent Color Generation (XEP-0392) |
Message Styling (XEP-0393) |
Extended Channel Search (XEP-0433) |
Message Retraction (XEP-0424) |
Message Moderation (XEP-0425) |
---|---|---|---|---|---|---|---|---|---|
XEP Status | Final | Active | Stable | Deferred | Experimental | Stable | Deferred | proposed | proposed |
AstraChat | ? | ? | ? | ? | ? | ? | ? | ? | ? |
BeagleIM | ? | ? | ? | ? | ? | ? | ? | Yes | ? |
BitlBee | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Bombus | Yes | ? | Yes | ? | ? | ? | ? | ? | ? |
ChatSecure | Yes | ? | ? | ? | ? | ? | ? | ? | ? |
Cisco Jabber | ? | ? | Yes | ? | ? | ? | ? | ? | ? |
conversations | ? | ? | ? | ? | Yes | Yes | ? | ? | ? |
Converse.js | Yes | ? | Yes | ? | ? | Yes | ? | Yes | Yes |
Dino | Yes | ? | Partial[Note 1] | ? | ? | Partial | ? | ? | ? |
gajim | Yes | Yes | Partial[Note 1] | ? | Yes | Yes | ? | Yes | Yes |
JSXC | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Kaidan | Yes | ? | ? | ? | ? | ? | ? | ? | ? |
Kopete | |||||||||
Miranda NG | Yes | ? | Yes | ? | ? | ? | ? | ? | ? |
Monal IM | Yes | ? | Yes | ? | Yes | ? | ? | ? | ? |
Movim | Yes | Yes | ? | Yes | ? | Partial | ? | Yes | ? |
Pidgin | Yes | ? | Yes | ? | ? | ? | ? | ? | ? |
Profanity | Yes | Yes | ? | ? | Yes | ? | ? | ? | ? |
Psi+ | Yes | Yes | Yes | Yes | ? | ? | ? | ? | ? |
Salut a toi | Yes | ? | ? | ? | ? | ? | ? | ||
SiskinIM | ? | ? | ? | ? | ? | ? | ? | Yes | ? |
Spark | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Tkabber | Yes | ? | Yes | ? | ? | ? | ? | ? | ? |
Yaxim | Yes | ? | ? | ? | ? | Yes | ? | ? | ? |
Xabber | ? | ? | ? | ? | ? | ? | ? | ? | ? |
slixmpp (lib.) | Yes | ? | Yes | ? | ? | ? | ? | Yes | Yes |
Qxmpp (lib.) | |||||||||
aioxmpp (lib.) | |||||||||
Tigase swift (lib.) | |||||||||
XMPPframerwork (lib.) | |||||||||
Client | In-Band Registration (XEP-0077)[warning 2] |
Contact Addresses for XMPP Services (XEP-0157) |
Out-of-Band Data (XEP-0066) |
Stateless Inline Media Sharing (XEP-0385) |
Consistent Color Generation (XEP-0392) |
Message Styling (XEP-0393) |
Extended Channel Search (XEP-0433) |
Message Retraction (XEP-0424) |
Message Moderation (XEP-0425) |
Mobile Compliance Suite
The mobile compliance level incudes all features from the core compliance category as well as all features in this suite.
Client | Client State Indication (XEP-0352)[warning 1] | Push Notifications (XEP-0357)[warning 1] | Mobile Considerations on LTE Networks (XEP-0286)[warning 1] |
---|---|---|---|
XEP status | Active | Deferred | Active |
AstraChat | ? | ? | ? |
BeagleIM | ? | ? | ? |
BitlBee | ? | ? | ? |
Bombus | ? | ? | ? |
ChatSecure | Yes | Yes | ? |
Cisco Jabber | ? | ? | ? |
Conversations | Yes | Yes[Note 1] | ? |
converse.js | Yes | Yes | ? |
Dino | ? | ? | ? |
Gajim | ? | ? | ? |
JSXC | ? | ? | ? |
Kaidan | Yes | ? | ? |
Kopete | |||
Miranda NG | Yes | ? | ? |
Monal IM | Yes | Yes | Yes |
Movim | ? | ? | ? |
Pidgin | ? | ? | ? |
Profanity | ? | ? | ? |
Psi+ | ? | ? | ? |
Salut a toi | ? | ? | ? |
SiskinIM | ? | ? | ? |
Spark | ? | ? | ? |
Tkabber | ? | ? | ? |
Yaxim | Yes | ? | ? |
Xabber | ? | ? | ? |
slixmpp (lib.) | Yes | ? | ? |
Qxmpp (lib.) | |||
aioxmpp (lib.) | |||
Tigase swift (lib.) | |||
XMPPframerwork (lib.) | |||
Client | Client State Indication (XEP-0352)[Note 1] | Push Notifications (XEP-0357)[Note 1] | Mobile Considerations on LTE Networks (XEP-0286)[Note 1] |
A/V Calling Compliance Suite
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.
Core client
Client | Jingle RTP Sessions (XEP-0167) |
Jingle Message Initiation (XEP-0353) |
Jingle ICE-UDP Transport Method (XEP-0176) |
Use of DTLS-SRTP in Jingle Sessions (XEP-0320) |
External Service Discovery (XEP-0215) |
---|---|---|---|---|---|
XEP status | Stable | Experimental | Stable | Stable | Deferred |
AstraChat | ? | ? | Yes | ? | ? |
BeagleIM | ? | Yes | ? | ? | Yes |
BitlBee | ? | ? | ? | ? | ? |
Bombus | ? | ? | ? | ? | ? |
ChatSecure | ? | ? | ? | ? | ? |
Cisco Jabber | ? | ? | ? | ? | ? |
Conversations | Yes | Yes | Yes | Yes | Yes |
Converse.js | ? | ? | Yes | Yes | Yes |
Dino | Partial | Yes | Partial | Yes | Partial |
Gajim | ? | ? | ? | ? | ? |
JSXC | Yes | ? | ? | ? | ? |
Kaidan | ? | ? | ? | ? | ? |
Kopete | |||||
Miranda NG | ? | ? | Yes | ? | |
Monal IM | ? | ? | ? | ? | Planned |
Movim | ? | Yes | ? | ? | Yes |
Pidgin | Yes | ? | Yes | ? | ? |
Profanity | ? | ? | ? | ? | ? |
Psi+ | Yes | ? | Yes | Yes | Yes |
Salut a toi | ? | ? | ? | ? | ? |
SiskinIM | ? | Yes | ? | ? | Yes |
Spark | ? | ? | ? | ? | ? |
Tkabber | ? | ? | ? | ? | ? |
Yaxim | ? | ? | ? | ? | ? |
Xabber | ? | ? | ? | ? | ? |
slixmpp (lib.) | ? | Yes | ? | ? | ? |
Qxmpp (lib.) | |||||
aioxmpp (lib.) | |||||
Tigase swift (lib.) | |||||
XMPPframerwork (lib.) | |||||
Client | Jingle RTP Sessions (XEP-0167) |
Jingle Message Initiation (XEP-0353) |
Jingle ICE-UDP Transport Method (XEP-0176) |
Use of DTLS-SRTP in Jingle Sessions (XEP-0320) |
External Service Discovery (XEP-0215) |
Advanced client
Client | Jingle RTP Feedback Negotiation (XEP-0293) |
Jingle RTP Header Extensions Negotiation (XEP-0294) |
Jingle Grouping Framework (XEP-0338) |
Source-Specific Media Attributes in Jingle (XEP-0339) |
---|---|---|---|---|
XEP status | Stable | Stable | Stable | Stable |
AstraChat | ? | ? | ? | ? |
BeagleIM | ? | ? | ? | ? |
BitlBee | ? | ? | ? | ? |
Bombus | ? | ? | ? | ? |
ChatSecure | ? | ? | ? | ? |
Cisco Jabber | ? | ? | ? | ? |
Conversations | Yes | Yes | Yes | Yes |
Converse.js | ? | ? | ? | ? |
Dino | Partial | Partial | ? | ? |
Gajim | ? | ? | ? | ? |
JSXC | ? | ? | ? | ? |
Kaidan | ? | ? | ? | ? |
Kopete | ||||
Miranda NG | ? | ? | ? | ? |
Monal IM | ? | Yes | ? | ? |
Movim | ? | ? | ? | ? |
Pidgin | ? | ? | ? | ? |
Profanity | ? | ? | ? | ? |
Psi+ | ? | ? | ? | ? |
Salut a toi | ? | ? | ? | ? |
SiskinIM | ? | ? | ? | ? |
Spark | ? | ? | ? | ? |
Tkabber | ? | ? | ? | ? |
Yaxim | ? | ? | ? | ? |
Xabber | ? | ? | ? | ? |
slixmpp (lib.) | ? | ? | ? | ? |
Qxmpp (lib.) | ||||
aioxmpp (lib.) | ||||
Tigase swift (lib.) | ||||
XMPPframerwork (lib.) | ||||
Client | Jingle RTP Feedback Negotiation (XEP-0293) |
Jingle RTP Header Extensions Negotiation (XEP-0294) |
Jingle Grouping Framework (XEP-0338) |
Source-Specific Media Attributes in Jingle (XEP-0339) |
Future Development
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.
Client | Bind 2.0 (XEP-0386) | IM Routing-NG (XEP-0409) | Instant Stream Resumption (XEP-0397) | Ad-hoc Account Invitation Generation (XEP-0401) | Pre-Authenticated Roster Subscription (XEP-0379) | Pre-Authenticated In-Band Registration (XEP-0445) | Chat Markers (XEP-0333) | Mediated Information eXchange (MIX) (XEP-0369) | Explicit Message Encryption (XEP-0380) | Stanza Content Encryption (XEP-0420) |
---|---|---|---|---|---|---|---|---|---|---|
XEP status | Deferred | Deferred | Deferred | proposed | proposed | proposed | Deferred | Experimental | Deferred | Experimental |
AstraChat | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
BeagleIM | ? | ? | ? | ? | ? | ? | Yes | Yes | ? | ? |
BitlBee | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Bombus | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
ChatSecure | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Cisco Jabber | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Conversations | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
Converse.js | ? | ? | ? | ? | ? | ? | Yes | ? | ? | Yes |
Dino | ? | ? | ? | ? | ? | ? | Yes | ? | Partial[warning 3] | ? |
Gajim | ? | ? | ? | ? | ? | ? | Partial[Note 1] | ? | Yes | ? |
JSXC | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Kaidan | ? | ? | ? | ? | ? | ? | ? | planned | ? | planned |
Kopete | ||||||||||
Miranda NG | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
Monal IM | won't fix | won't fix | won't fix | ? | Partial | ? | Partial[Note 1] | Yes | Yes | Yes |
Movim | ? | ? | ? | ? | ? | ? | Yes | ? | Partial | ? |
Pidgin | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Profanity | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Psi+ | ? | ? | ? | ? | ? | ? | ? | ? | Partial | ? |
Salut a toi | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
SiskinIM | ? | ? | ? | ? | ? | ? | Yes | Yes | ? | ? |
Spark | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Tkabber | ? | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Yaxim | ? | ? | ? | ? | Yes | ? | ? | ? | ? | ? |
Xabber | ? | ? | ? | ? | ? | ? | Yes | ? | ? | ? |
slixmpp (lib.) | ? | ? | ? | ? | ? | ? | Yes | Partial | Yes | ? |
Qxmpp (lib.) | ||||||||||
aioxmpp (lib.) | ||||||||||
Tigase swift (lib.) | ||||||||||
XMPPframerwork (lib.) | ||||||||||
Client | Bind 2.0 (XEP-0386) | IM Routing-NG (XEP-0409) | Instant Stream Resumption (XEP-0397) | Easy User Onboarding (XEP-0401) | Pre-Authenticated Roster Subscription (XEP-0379) | Pre-Authenticated In-Band Registration (XEP-0445) | Chat Markers (XEP-0333) | Mediated Information eXchange (MIX) (XEP-0369) | Explicit Message Encryption (XEP-0380) | Stanza Content Encryption (XEP-0420) |
Future Development (cont.)
Client | OMEMO Encryption (XEP-0384) |
Jingle Encrypted Transports - OMEMO (XEP-0396) |
OpenPGP for XMPP Instant Messaging (XEP-0374) |
Bookmarks Conversion (XEP-0411) |
Component Connections (XEP-0225) |
Entity Capabilities 2.0 (XEP-0390) |
Service Outage Status (XEP-0455) |
---|---|---|---|---|---|---|---|
XEP status | Experimental | Deferred | Deferred | Deprecated | Deferred | Deferred | Experimental |
AstraChat | ? | ? | ? | ? | ? | ? | ? |
BeagleIM | ? | ? | ? | ? | ? | ? | ? |
BitlBee | ? | ? | ? | ? | ? | ? | ? |
Bombus | ? | ? | ? | ? | ? | ? | ? |
ChatSecure | Yes | ? | ? | ? | ? | ? | ? |
Cisco Jabber | ? | ? | ? | ? | ? | ? | ? |
Conversations | Yes | Yes | ? | Yes | ? | ? | ? |
Coverse.js | Yes | ? | Yes | ? | ? | ? | ? |
Dino | Yes | Yes | ? | ? | ? | ? | ? |
Gajim | Plug-In[59] | ? | Yes | Yes | Yes | Yes | ? |
JSXC | ? | ? | ? | ? | ? | ? | ? |
Kaidan | planned | ? | ? | ? | ? | ? | ? |
Kopete | |||||||
Miranda NG | Yes | ? | ? | ? | ? | ? | ? |
Monal IM | Yes | Yes | Yes | ? | ? | Yes | ? |
Movim | ? | ? | ? | ? | ? | ? | ? |
Pidgin | Plug-in[60] | ? | Dropped[61] | ? | ? | ? | ? |
Profanity | Yes | ? | Yes | ? | ? | ? | ? |
Psi+ | Yes | ? | ? | ? | ? | ? | ? |
Salut a toi | ? | ? | ? | ? | ? | ? | ? |
SiskinIM | ? | ? | ? | ? | ? | ? | ? |
Spark | ? | ? | ? | ? | ? | ? | ? |
Tkabber | ? | ? | ? | ? | ? | ? | ? |
Yaxim | In Development | ? | ? | ? | ? | ? | ? |
Xabber | Yes | ? | ? | ? | ? | ? | ? |
slixmpp (lib.) | ? | ? | ? | ? | ? | ? | ? |
Qxmpp (lib.) | |||||||
aioxmpp (lib.) | |||||||
Tigase swift (lib.) | |||||||
XMPPframerwork (lib.) | |||||||
Client | OMEMO Encryption (XEP-0384) |
Jingle Encrypted Transports - OMEMO (XEP-0396) |
OpenPGP for XMPP Instant Messaging (XEP-0374) |
Bookmarks Conversion (XEP-0411) |
Component Connections (XEP-0225) |
Entity Capabilities 2.0 (XEP-0390) |
Service Outage Status (XEP-0455) |
Summary
Compliance status of XMPP clients, with RFCs/XEPs
Client | Compliance |
---|---|
AstraChat | 13% |
beagle IM | 10% |
BitlBee | 3% |
Bombus | 17% |
ChatSecure | 13% |
Cisco Jabber | 10% |
Conversations | 69% |
converse.js | 46% |
Dino | 61% |
Gajim | 61% |
JSXC | 27% |
Kaidan | 20% |
Kopete | 0% |
Miranda IM | 31% |
Monal IM | 65% |
Movim | 45% |
Pidgin | 31% |
Profanity | 30% |
Psi | 21% |
Salut à Toi | 20% |
SiskinIM | 8% |
Spark | 4% |
Tkabber | 10% |
yaxim | 25% |
Xabber | 20% |
slixmpp (lib.) | 42% |
Qxmpp (lib.) | |
aioxmpp (lib.) | |
Tigase swift (lib.) | |
XMPPframerwork (lib.) | |
References
- "Marktübersicht selbst gehostete Messenger Geschützter Raum". Heise magazine. Retrieved 15 April 2022.
- "Estudiantes crean red para comunidad sin acceso a internet en Barranquilla". El tiempo. Retrieved 15 April 2022.
- "XMPP client for macOS based on TigaseSwift XMPP library". MacosRepo. Retrieved 8 April 2022.
- "Instant Messaging (IM) Market Growth 2031". Retrieved 14 April 2022.
- "XMPP Features". Conversations.
- "Conversations: Open-Source-Messenger mit Audio- und Videoanruf". heise online. heise.de. Retrieved 15 April 2022.
- "Converse.js: An open-source XMPP client for building in-browser messaging apps". medevel. Retrieved 21 Feb 2022.
- "Dino 0.3 lançado com suporte a videochamadas, conferências, e mais". blog do edivaldo. Retrieved 15 April 2022.
- "supported XEPs". Gajim.
- "The 10 Best Instant Messaging Apps for Linux". MakeUseOf.
- "Interoperable Chat in Your Web Browser: JSXC 3.0 released".
- "User Privacy at The Heart of New Instant Messaging Services Developed with The Support of EU's Next Generation Internet Initiative".
- "Po 7 latach zainstalowałem komunikator Miranda IM - odżyły wspomnienia".
- "Monal as XMPP Client for Apple iPhone". Retrieved January 4, 2019.
- "Deciphering the jibber jabber: getting started with your own self-hosted XMPP server".
- "The Evolution of Encrypted IM Messenging Platforms – The Rise and Future of the OMEMO Protocol – An Analysis".
- "El cliente XMPP gratuito yaxim celebra su décimo aniversario". linuxadictos.
- BitlBee Public instances
- "Libervia frontends".
- "Supported XMPP Protocols". AstraChat.
- "BeagleIM changelog". github.
- "BitlBee changelog". github.
- "Список стандартов XMPP, поддерживаемых в Bombus".
- "ChatSecure v4.3.0 - OMEMO Group Chat Preview".
- "ChatSecure v4.2.0 - Group Chat".
- "ChatSecure v4.1.0 - Media Messaging".
- "ChatSecure iOS v3.2.3 - XMPP Push".
- "ChatSecure v2.2 Released".
- "ChatSecure v1.4 Released".
- "Cisco jabber XMPP Standards Compliance" (PDF).
- "Conversations DOAP File". Conversations.
- "Converse.js supported XMPP Extensions". github.
- "Implemented XEPs". Dino.
- "Dino DOAP file".
- "Gajim DOAP file". Gajim.
- "Supported Protocols". JSXC.
- "Kaidan list XEP supported in DOAP file". kde.
- "Kopete XEPs". github.
- "Supported XEPs". Miranda NG.
- "Monal IM DOAP file". github.
- "Movim DOAP file".
- "supported XEPs". Pidgin. Retrieved 17 April 2022.
- "Profanity Supported XEPs".
- "Profanity DOAP file".
- "Psi Supported XEPs".
- "Salut à Toi's specifications". Archived from the original on 2 June 2017.
- "SiskinIM changelogs". github.
- "Spark XEPs".
- "Tkabber Protocol support".
- "Yaxim DOAP file".
- "Xabber Extension Protocols Relations.drawio". Google Drive. Xabber. Retrieved 17 April 2022.
- "PNG version". imgur. Retrieved 17 April 2022.
- "Xabber F-droid description XEP support".
- "slixmpp DOAP file".
- "qxmpp XEP support".
- "aioxmpp XEP support".
- "Tigase swift XEP support".
- "XMPPframerwork XEP support".
- "XEP-0384: OMEMO Encryption - Gajim". gitlab.
- "XEP-0384: OMEMO Encryption for libpurple". github.
- "XEP-0374: OpenPGP for XMPP Instant Messaging - pidgin".
Notes
- (only recommended for legacy bookmarks support)
- should be supported, but not enabled in default server configurations
- Only for outgoing messages
- Only DNS method.