summaryrefslogtreecommitdiff
path: root/docs/differences.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/differences.rst')
-rw-r--r--docs/differences.rst47
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/differences.rst b/docs/differences.rst
new file mode 100644
index 00000000..f6e005b5
--- /dev/null
+++ b/docs/differences.rst
@@ -0,0 +1,47 @@
+.. _differences:
+
+Differences from SleekXMPP
+==========================
+
+**Python 3.4+ only**
+ slixmpp will only work on python 3.4 and above.
+
+**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,
+ :meth:`Stanza.reply() <.StanzaBase.reply>` calls
+ (for :class:`IQs <.Iq>`, :class:`Messages <.Message>`, 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, :meth:`.Iq.send` **does not block
+ anymore**.
+
+**Coroutine facilities**
+ **See** :ref:`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 :class:`~.slixmpp.stanza.Iq` object’s :meth:`~.slixmpp.stanza.Iq.send`
+ method now **always** return a :class:`~.asyncio.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.