slixmpp
Slixmpp is an elegant Python library for XMPP (aka Jabber).
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 slixmppuv
uv add slixmpppoetry
poetry add slixmppInstalling 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
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
pubnubPubNub Python SDK provides real-time…
unclear · top 15,000 on PyPI
nats-pyAn asyncio Python client for connecting to and…
permissive · top 5,000 on PyPI
TwistedTwisted is an event-driven networking framework…
permissive · top 5,000 on PyPI
ablyAbly is a Python client library for connecting…
permissive · top 5,000 on PyPI
qstashPython SDK for publishing and receiving…
permissive · top 15,000 on PyPI
openfire-restapiA Python client library for interacting with…
copyleft · top 15,000 on PyPI
clx-sdk-xmsPython SDK for the CLX Communications REST API…
permissive · top 15,000 on PyPI
zope.eventProvides a simple synchronous event publishing…
unclear · top 1,000 on PyPI
stomp.pyA Python client library for connecting to STOMP…
permissive · top 5,000 on PyPI
pyobjc-framework-InstantMessageProvides Python bindings to the macOS…
permissive · top 15,000 on PyPI