Skip to content
Back to top
View this page

# Differences from SleekXMPP

Python 3.7+ only

  slixmpp will work on python 3.7 and above. It may work with previous versions but we provide no guarantees.

Stanza copies

  The same stanza object is given through all the handlers; a handler that edits the stanza object should make its own copy.

Replies

  Because stanzas are not copied anymore, `Stanza.reply()` calls (for `IQs`, `Messages`, etc) now return a new object instead of editing the stanza object in-place.

Block and threaded arguments

  All the functions that had a `threaded=` or `block=` argument do not have it anymore. Also, `Iq.send()` does not block anymore.

Coroutine facilities

  See Using asyncio

  If an event handler is a coroutine, it will be called asynchronously in the event loop instead of inside the event caller.

  A CoroutineCallback class has been added to create coroutine stream handlers, which will be also handled in the event loop.

  The `Iq` object’s `send()` method now always return a `Future` which result will be set to the IQ reply when it is received, or to `None` if the IQ is not of type `get` or `set`.

  Many plugins (WIP) calls which retrieve information also return the same future.

Architectural differences

  slixmpp does not have an event queue anymore, and instead processes handlers directly after receiving the XML stanza.

Note

If you find something that doesn’t work but should, please report it.