Best python XMPP / Jabber client library? [closed]

What are your experiences with Python Jabber / XMPP client libraries? What do you recommend?


Solution 1:

It depends what license you can use. Some popular libraries are GPL which can cause serious issues if you need to use it for work, especially if you need to keep proprietary extensions. The LGPL libraries are a little less popular, I think, but you have more flexibility with what you can use them for.

I'd once looked at using twisted directly for some simple XMPP scripting but the documentation was literally non-existant. Like, I opened a published twisted reference manual and it didn't include xmpp or jabbber at all. Maybe they've fixed that now.

MIT libraries.

  • slixmpp is a friendly fork of sleekxmpp. It has removed all threads and is for python 3.7+.
  • sleekxmpp was pretty popular and was used for examples in Peter Saint-Andre's XMPP book from O'Reilly. It has been depricated in favor of slixmpp.

GPL libraries.

  • xmpppy was used by gajim from 2005-2014, and began as a forked jabberpy. Also lives at xmpppy.
  • nbxmpp forked xmpppy, and is used by gajim. It requires python 3.7+ and is actively maintained.

LPGL libraries.

  • aioxmpp is an asyncio-based python 3.4+ library.
  • pyxmpp is abandoned in favor of pyxmpp2. It uses libxml2 internally for xml parsing.
  • pyxmpp2 is the next version of pyxmpp, runs on python 2.7 and 3.3, and removes the libxml2 requirement. Like many, it requires dnspython.
  • jabberpy is the original and is thoroughly unmaintained.

Other libraries.

  • Wokkel, mentioned in another post. That's a new one for me, based on twisted.

Solution 2:

All of my best XMPP work has been using wokkel.

Couple examples:

  • twitterspy
  • whatsup