At its core, XMPP is a technology for streaming XML over a network. The protocol, which emerged from the Jabber open-source community in 1999, was originally designed to provide an open, secure, decentralized alternative to consumer-oriented instant messaging (IM) services like ICQ, AIM, and MSN. The core technologies were formalized under the name Extensible Messaging and Presence Protocol (XMPP) at the IETF in 2004. These core technologies include:
- The base XML streaming layer
- Channel encryption using Transport Layer Security (TLS)
- Strong authentication using the Simple Authentication and Security Layer (SASL)
- Use of UTF-8 for complete Unicode support, including fully internationalized addresses
- Built-in information about network availability (“presence”)
- Presence subscriptions for two-way authorization
- Presence-enabled contact lists (“rosters”)
The core XMPP technologies are defined in two RFCs published by the IETF:
These RFCs are currently undergoing revision based on implementation and deployment experience since 2004. The revised versions are available at <http://xmpp.org/protocols/internet-drafts/>.
There are many implementations of the core XMPP specifications. See the following pages for details:
4. Discussion Venues
The XMPP Standards Foundation maintains several email discussion lists about the core XMPP technologies. The primary list is the “email@example.com” list. As with all XSF technology lists, the firstname.lastname@example.org list is open to all interested individuals.