[jdev] xmpppy 0.1.1 release

Alexey Nezhdanov snake at penza-gsm.ru
Thu Sep 23 23:48:10 CDT 2004

В сообщении от 23 Сентябрь 2004 23:18 Jacek Konieczny написал(a):
> On Thu, Sep 23, 2004 at 05:50:05PM +0200, Chris Niekel wrote:
> > Now that both authors (of pyxmpp and xmpppy) are in the same thread,
> > could you (either or both), explain what the difference is between your
> > libraries,
> I can not say anything about differences, as I don't know xmpppy.
I do not know PyXMPP though but I have looked through it one day. I'll express 
my opinion about it later in this mail.
> When I wanted to write a Jabber python project some time ago the only
> library available was jabber.py,
Exactly the same for me. The difference is that when I start xmpppy project I 
was already maintainer of jabber.py.
> which I didn't like. I didn't like 
> custom XML parser and tree representation, not well suited for parsing
> anything else than Jabber streams and bad support for Unicode (hints to
> change my python encoding to UTF-8 were just ugly hacks).
I like jabber.py very much. It was the only project for that time that joined 
my two favorite things: jabber and python (and it worked on linux that is 
also my favorite). Though it was very hard to implement TLS and SASL in it so 
I initially begun to rewrite jabber.py and then found that the work is not 
worth it and it will be better to start new project.
I didn't liked python's xml.sax parser and the unicode was already worked well 
in jabberpy0.5 so the xmpppy inherited them both - custom xml parser and good 
(now excellent) unicode support. And the callbacks structure in xmpppy will 
remind you jabberpy times.
The fact of that xmpppy and PyXMPP uses completely different approaches to XML 
handling makes them totally incompartible. Dont wait for projects merje - 
this will never happen. And I have not found (almost) any ideas that worths 
porting - all features of PyXMPP present in xmpppy (at least that was ~6 
months before now).
> That is why 
> I started PyXMPP. In fact I wanted to write a Jabber server, but to test
> PyXMPP features I started writting a simple text client. The client was
> so interesting to me so I dropped the server ide and do CJC as my
> primary project. PyXMPP is developed mainly for CJC. Then I wanted an
> IRC gateway, so I have added component support to PyXMPP and wrote
> JJIGW. And so on...
I started xmpppy to solve jabberpy's architecture problems. Though it obtained 
some others - like absence of functions naming. I hope I will solve this 
problem in 0.2-0.3 versions. For now I'm working on xmppd.py project and this 
helps improve library a lot.

> PyXMPP is developed mainly for my needs and the way I like. However
> I hope other developers will like it the same way so it could become
> something more that one-man-project. I know there are a few other
> developers using (or trying to use PyXMPP).
Exactly the same.
> > and when people should favour one or the other?
> When they like more the one or the other. Each of them has its own way
> of doing things.
> > Most people would have to learn 2 libraries for that, you have the unique
> > perspective of already knowing at least one of them.
> But without knowing the other it is hard to compare. And I am not sure
> I want to know the other. If it is better, then all my work was not
> needed ;-)
Here is my opinions of PyXMPP. This is very subjective POV since I am the 
author of concurrent project.
As I already writed - I disliked the idea of python's standart XML parser from 
the beginning. I think that it is hard and heavy interface to such simple 
thing as jabber's subset of XML. BTW I using xmpppy's simplexml.py module in 
my other projects completely unrelated to jabber and very fond of such good 
and stable library.
And when I first saw the PyXMPP I was immidiatedly understood what it is all 
about. This is the main drawback of PyXMPP IMO.The XML is the core of jabber 
so xml library influate all the other code. But this is completely personal 
preferrence matters. So people that likes xmllib2 library will probably 
choose PyXMPP.
Sorry Jacek, I hope you will not take it personal.
> > Any plans to merge them (pyxmpppy?)?
> I don't think it makes sense. The architecture is quite different.
I wrote it already. It is impossible.
> > Or to steal good ideas from the other?
> That could be possible. Though, I prefer getting own idea than
> "stealing" others (which, I know, sometimes is much better), however if
> anybody thinks it makes sense and ports an idea from xmpppy to pyxmpp,
> then I could add the feature to PyXMPP.
I likes to importing features from other projects. I already imported one 
minor feature from PyXMPP - __eq__ method in JID class. But that's all. 
Probably I should look at it again.

For less emotional and more rational comparsion here is xmpppy features:
XMPP standart login scheme - TLS, SASL, Bind, Session.
Non-SASL auth
Disco client and server (the later is not released yet)
debug module from Jacob Lundquist - a colored output :)
about 4 types of callbacks. 
IBB (w/o SI though yet)
XMPP Errors, Data forms
roster (minor implementation, but better than jabberpy's)
CONNECT Proxy support.
Alexey Nezhdanov

More information about the JDev mailing list