The core specifications for XMPP are developed at the Internet Engineering Task Force (IETF) - see RFC 6120, RFC 7590, RFC 6121, and RFC 7622 (along with a WebSocket binding defined in RFC 7395).
The XMPP Standards Foundation develops extensions to XMPP in its XEP series. This page lists Draft and Final XEPs as well as experimental proposals that are currently under consideration.
Good places for developers to start are the compliance suites, as well as the technology overview pages.
A free and open-source XMPP chat client in your browser
Available as overlayed chat boxes or as a fullscreen application. See inverse.chat for the fullscreen version.
A plugin architecture based on pluggable.js
Single-user and group chat
Contacts and groups
Multi-user chatrooms (XEP 45)
Chatroom bookmarks (XEP 48)
Direct invitations to chat rooms (XEP 249)
vCard support (XEP 54)
Service discovery (XEP 30)
In-band registration (XEP 77)
Roster item exchange (XEP 144)
Chat statuses (online, busy, away, offline)
Custom status messages
Typing and chat state notifications (XEP 85)
Desktop notifications
File sharing / HTTP File Upload (XEP 363)
Messages appear in all connected chat clients / Message Carbons (XEP 280)
Third person "/me" messages (XEP 245)
XMPP Ping (XEP 199)
Server-side archiving of messages (XEP 313)
Hidden messages (aka Spoilers) (XEP 382)
Client state indication (XEP 352)
Last Message Correction (XEP 308)
OMEMO encrypted messaging (XEP 384)
Supports anonymous logins, see the anonymous login demo.
Translated into 29 languagesPublic Jabber Chat rooms
Christopher Muclumbus: A listing of public XMPP/Jabber chat rooms/groups.
OMEMO was implemented in the Android Jabber Client Conversations as part of a Google Summer of Code project by Andreas Straub in 2015. The basic idea was to utilize the encryption library used by Signal (formerly TextSecure) for message encryption. So basically OMEMO borrows almost all the cryptographic mechanisms including the Double Ratchet and X3DH from Signals encryption protocol, which is appropriately named Signal Protocol. So to begin with, lets look at it first.
Prosody is a modern XMPP communication server. It aims to be easy to set up and configure, and efficient with system resources. Additionally, for developers it aims to be easy to extend and give a flexible system on which to rapidly develop added functionality, or prototype new protocols