Welcome to aioxmpp’s documentation!

Welcome to the documentation of aioxmpp! In case you do not know, aioxmpp is a pure-python XMPP library written for use with asyncio.

If you are new to aioxmpp, you should check out the Quick start, or read on below for an overview of the Feature overview of aioxmpp. If you want to check the API reference to look something up, you should head to The aioxmpp package.


Feature overview

  • Native XEP-0198 (Stream Management) support for robustness against transient network failures (such as switching between wireless and wired networks).

  • Powerful declarative-style definition of XEP-based and custom protocols via aioxmpp.xso and aioxmpp.service. Most of the time, you will not get in contact with raw XML or character data, even when implementing a new protocol.

  • Secure by default: TLS is required by default, as well as certificate validation. Certificate or public key pinning can be used, if needed.

  • Support for RFC 6121 (Instant Messaging and Presence, aioxmpp.presence, aioxmpp.roster) roster and presence management, along with XEP-0045 (Multi-User Chats, aioxmpp.muc) for your human-to-human needs.

  • Support for XEP-0060 (Publish-Subscribe, aioxmpp.pubsub) and XEP-0050 (Ad-Hoc Commands, aioxmpp.adhoc) for your machine-to-machine needs.

  • Several other XEPs, such as XEP-0115 (Entity Capabilities, aioxmpp.entitycaps, including native support for reading and writing the capsdb) and XEP-0131 (Stanza Headers and Internet Metadata, aioxmpp.shim).

  • APIs suitable for both one-shot scripts and long-running multi-account clients.

  • Well-tested and modular codebase: aioxmpp is developed in test-driven style and many modules are automatedly tested against a Prosody 0.9, 0.10 and the most recent development version, as well as ejabberd, two popular XMPP servers.

    https://travis-ci.org/horazont/aioxmpp.svg?branch=devel https://coveralls.io/repos/github/horazont/aioxmpp/badge.svg?branch=devel

Check out the Quick start to get started with aioxmpp now! ☺

Supported protocols

The referenced standards are ordered by their serial number. Not included are specifications which define procedures which were followed or which are described in the documentation. Those are also linked at the respective places throughout the docs.


From XMPP Extension Proposals (XEPs)



The contribution guidelines are outlined in the README in the source code repository. The repository is hosted at GitHub.

Security Issues

If you believe that a bug you found in aioxmpp has security implications, you are welcome to notify me privately. To do so, send a mail to Jonas Schäfer, encrypted using the GPG public key:

Fingerprint AA5A 78FF 508D 8CF4 F355  F682 E5ED E5AC 679E 300F

If you prefer to disclose security issues immediately, you can do so at any of the places listed in the contribution guidelines (see above).

Indices and tables