Prosody IM Website


file doc/xmpp.md in changeset a0a72faa1970

View latest ↓ Download file

line wrap: on
line source

---
title: XMPP
abstract: Prosody is an XMPP server. But what exactly is XMPP?
---

Prosody is an XMPP server. But what exactly is XMPP?

> The Extensible Messaging and Presence Protocol (XMPP) is an open
> technology for real-time communication, which powers a wide range of
> applications including instant messaging, presence, multi-party chat,
> voice and video calls, collaboration, lightweight middleware, content
> syndication, and generalized routing of XML data.\
> - - [xmpp.org](http://xmpp.org/about-xmpp/)

Ok... what?? [:fearful:]{.icon}

XMPP is a network protocol, a \"language\" that is used by machines to
communicate with each other. It is based on
[XML](https://en.wikipedia.org/wiki/XML), which allows the protocol to
be extended for a wide variety of purposes.

The most widespread use of XMPP is for instant messaging (IM). There are
many XMPP servers on the internet, all linked up with each other. This
IM network is also known as \'Jabber\', the name of the original project
that started it all back in 1999. The [original Jabber
service](http://www.jabber.org/) is still running, though on different
software nowadays.

The specification for XMPP is open to all developers, and any developer
is free to add XMPP support to their software. This means there is lots
of XMPP-enabled software available, much of it free and open-source like
Prosody.

Unlike the original IM networks, XMPP does not require people to be
using the same IM service to chat to each other. If someone on
jabber.org wants to add someone using gmail.com to their contact list
(called a \'roster\' in XMPP), the servers automatically connect with
each other. This is pretty much how email works underneath too (though
XMPP is more geared towards realtime exchange of short messages, and has
built-in protection against address forgery).

# Further reading {#further_reading}

There is lots of information on XMPP\'s gory details. You shouldn\'t
need to know anything much that isn\'t already in Prosody\'s
documentation, as apart from the basics here, only developers really
need to dig deeper.

-   [XMPP on Wikipedia](https://en.wikipedia.org/wiki/XMPP)
-   [Technology Overview on
    xmpp.org](http://xmpp.org/about-xmpp/technology-overview/)
-   [XMPP: The Definitive Guide
    book](http://oreilly.com/catalog/9780596157197/)
-   The official [XMPP specifications](http://xmpp.org/xmpp-protocols/),
    mainly:
    -   [RFC 6120](http://xmpp.org/rfcs/rfc6120.html)
    -   [RFC 6121](http://xmpp.org/rfcs/rfc6121.html)
    -   [XMPP extensions (XEPs)](http://xmpp.org/extensions/)