[jdev] Announcing PubSubClient, a Python library for the client/entity side of XEP-0060
Chris Warburton
chriswarbo at googlemail.com
Mon Sep 29 14:03:14 CDT 2008
Hello everyone, over the summer I've been working on a PubSub library called
PubSubClient so that I can make use of the PubSub system in desktop
applications. I couldn't find anything satisfactory when I started (only
Gloox, but I'm not too good with C++) so decided to write one. I later found
out about x60br, but at that point PubSubClient was working nicely, and
doesn't use Twisted.
The library itself is all Python, using lxml and xmpppy. The API is rather
crufty at the moment since its been reworked a few times, but the included
"browser" test/demo is quite functional (requires PyGTK and Kiwi PyGTK
widgets). The whole thing is asynchronous, running developer-defined callbacks
when replies are received (matched by using stanza IDs as dictionary keys) and
doesn't require developers to touch xmpppy, lxml or any other library (unless
of course they want to).
It's still far from stable, and whilst almost all of the (entity-side)
specification is implemented in terms of sending, there are large gaps when
handling replies. I see PubSub server related stuff as out of scope for this
library, since that would require complications like storage and security
which would bloat away from its original purpose.
In the spirit of the Open Source development model I'm releasing early (and
hopefully often), with a Sourceforge page at
http://pubsubclient.sourceforge.net and the actual code hosted in git at
http://gitorious.org/projects/pubsubclient .
The library is licensed under the GNU Affero GPL. I don't want to start a
license flame-war, so suffice it to say that the decision won't be changed. If
you don't like it, write a replacement on your own terms (you'll probably do a
much better job than I did).
My current efforts are to get basic functionality in the library working by
using the test applications' functionality as the current goal. Anything
obscure like item filters and advanced configuration options probably won't be
implemented for a while, unless you do it yourself or specifically request it
of me (thus I'll know that it is wanted).
Thanks, I await the feedback
Chris Warburton
PS: There's not too much infrastructure going at the moment, like mailing
lists and such. I wanted to get the code out there before bogging myself down
with administrative details.
More information about the JDev
mailing list