r2 - 13 Jan 2006 - 22:53:39 - MikeTYou are here: OSAF >  Journal Web  >  TWikiUsers > MikeT > MikeTaylorNotes > JabberLibraries

Python Jabber Libraries

So far I've found the following libraries for working with Jabber:

  • xmpppy -- so far the most active and feature-ful
  • Twisted Words -- the very latest version (probably best to stick with SVN versions) has support for the xmpp protocol
  • jabber.py -- this is the library we have included in Chandler (v0.4) but it doesn't seem to be active - heck, 0.5 was released in November of 2003.

Feature Chart

NOTE: This is just my listing of features as I either find them or run into the lack of a feature

Feature JEP xmpppy t.words jabber.py
non SASL JEP-0078 Yes Yes  
SASL (Digest MD5)   Yes Yes  
SASL (Plain)   Yes Yes  
Presence (basic)   Yes 2 Yes
Presence-Invisible   Yes 2 Yes
Presence (muc)   Yes 2 Yes
XML-RPC over Jabber JEP-0009 Yes 1 2 Yes
Feature Negotiation JEP-0020 No Yes  
Signed/Encrypted JEP-0027 Yes 1 2  
Service Discovery JEP-0030 Yes 2 Yes
In-Band Bytestreams JEP-0047 Yes 2  
vCard JEP-0054 No 2 Yes
Publish-Subscribe JEP-0060 No 2  

Note 1 - The required namespace is defined so an incoming message will be parsed correctly

Note 2 - Twisted Words provides the basic stream and some helper classes for the core xmpp protocol - everything else needs to be written by the user smile

Don't view the above table as anyway comprehensive or complete -- it's a work in progress.

Notes

jabberpy and xmpppy both follow a similiar path in that they provide helper classes to abstract all of the low level xml mess that is at the heart of xmpp. While Twisted Words also provides helper classes, it only does so for the more basic of items.

Resources

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.