skillfed

slixmpp

Slixmpp is an elegant Python library for XMPP (aka Jabber).

slixmpp v1.17.0 223.8K downloads/30d#9,238 on PyPI
Permissive license MIT Active released

What it is and what it does

Slixmpp is a modern async XMPP library for Python 3.11+ that replaces the older SleekXMPP by removing all threading and rewriting the low-level socket handling, timers, and event dispatch to work with asyncio. It lets you build XMPP clients and components that send and receive instant messages, presence updates, and other real-time data over the XMPP protocol.

The library uses Rust-compiled extension modules for performance-critical sections and depends on aiodns, pyasn1, and pyasn1-modules for DNS resolution and cryptographic operations. It ships with prebuilt wheels for Python 3.11–3.14 on Linux platforms, though building from source requires cargo if your platform lacks a wheel. The core pattern is to subclass ClientXMPP, register event handlers, and run the connection loop with asyncio—making it straightforward to integrate XMPP into async Python applications.

Use it for:

  • Build a real-time chat bot or client that connects to an XMPP server and responds to incoming messages asynchronously.
  • Implement a presence-aware application that tracks user online/offline status and roster changes over XMPP.
  • Create an XMPP component or gateway that bridges XMPP with other messaging systems or services.
  • Develop multi-user chat (MUC) applications that manage rooms, participants, and group messaging.
  • Integrate XMPP-based notifications or alerts into a larger async Python service or microservice.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Slixmpp is an async-first XMPP library for Python that handles real-time messaging and presence over the XMPP protocol, built without threads by rewriting the core socket and event handling layers.

Yes, if you need async XMPP support in Python 3.11+. Slixmpp is actively maintained, MIT-licensed, has no known vulnerabilities, and offers prebuilt wheels for common platforms, reducing install friction. The medium friction is manageable for most deployments. Install it if you're building real-time messaging, presence, or chat features over XMPP and want a modern async-first library.

Install

slixmpp on PyPI

pip

pip install slixmpp

uv

uv add slixmpp

poetry

poetry add slixmpp

Installing slixmpp

Before you install

Medium install friction due to Rust-based extension modules; prebuilt wheels are available for Python 3.11–3.14 on common platforms (manylinux, musllinux, aarch64, x86_64), but building from source requires cargo if wheels are unavailable. Three runtime dependencies (aiodns, pyasn1, pyasn1-modules) add modest overhead. Maintenance is active with a recent release.

License in practice

MIT license is permissive and imposes no significant restrictions on use, modification, or redistribution in commercial or proprietary projects.

Quickstart

import asyncio
from slixmpp import ClientXMPP

class EchoBot(ClientXMPP):
    def __init__(self, jid, password):
        ClientXMPP.__init__(self, jid, password)
        self.add_event_handler("session_start", self.session_start)

    def session_start(self, event):
        self.send_presence()

bot = EchoBot('user@example.com', 'password')
bot.connect()
asyncio.get_event_loop().run_forever()

Requires Python 3.11 or later; building from source requires cargo if prebuilt wheels are unavailable for your platform.

Verify before relying

  • Whether aiodns is a hard requirement or optional for DNS resolution
  • Performance characteristics compared to synchronous XMPP libraries
  • Extent of XEP (XMPP Extension Protocol) plugin coverage beyond the core library

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.11)
Install friction medium — platform-specific wheel
Runtime dependencies 3 — aiodns, pyasn1, pyasn1-modules
Maintenance actively maintained — 37 days since the last release
First released
Downloads 223,837/month — #9,238 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: slixmpp-1.17.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; slixmpp-1.17.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; slixmpp-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl; slixmpp-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl; slixmpp-1.17.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; slixmpp-1.17.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; slixmpp-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl; slixmpp-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl; slixmpp-1.17.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; slixmpp-1.17.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; slixmpp-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl; slixmpp-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl; slixmpp-1.17.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; slixmpp-1.17.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; slixmpp-1.17.0-cp314-cp314-musllinux_1_2_aarch64.whl; slixmpp-1.17.0-cp314-cp314-musllinux_1_2_x86_64.whl

Intended Audience :: DevelopersProgramming Language :: PythonProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Internet :: XMPPTopic :: Software Development :: Libraries :: Python Modules

Tags

xmpp client library pythonjabber protocol asyncreal-time messaging pythonxmpp async libraryinstant messaging protocolsleekxmpp alternativexmpp stanza handling
xmppasync-messagingreal-time-comms

More Python Modules packages