
At Sat, 7 Apr 2007 18:34:21 -0700, Stefan O'Rear wrote:
On Sun, Apr 08, 2007 at 02:03:03AM +0200, Magnus Henoch wrote:
I'm hacking a library for writing XMPP clients, and just decided that my work is good enough to call it version 0.0.1. Find source and documentation here:
Congrats, you are (at least) the third person to do this.
Jeremy Shaw (stepcut): http://www.n-heptane.com/nhlab/repos/haskell-xmpp/
In my library I try to preserve the extensible nature of XMPP. It was my hope that people could add support for XMMP Extension Protocols (XEP), by writing additional modules without having to make any changes to the existing modules. As can be seen on this page: http://www.xmpp.org/extensions/ There are a *ton* of proposed extensions, so this seems like an admirable goal. Each extension could be distributed as a seperate cabal package, and provide a module like: Network.Protocol.XMPP.XEP1234 I think that I perhaps acheived my goal, but unfortunately, I think the API is pretty ugly and hard to use. It would be great to see someone figure out a better way to do it. Also, anyone interested in making an XMPP library should probably be aware of the development version of HaXml: http://www.cs.york.ac.uk/fp/HaXml-devel/ which includes this module: http://www.cs.york.ac.uk/fp/HaXml-devel/HaXml/Text-XML-HaXml-SAX.html "A streaming XML parser, using a method known as SAX. SAX isn't really a standard, but an implementation, so it's just an "SAX-like" parser. This module allows you parse an XML document without having to evaluate it as a whole. This is needed for protocols like jabber, which use xml streams for communication." j. ps. If this proposal were already implemented: "Open Data Types and Open Functions" by Andres and Ralf: http://www.informatik.uni-bonn.de/~loeh/OpenDatatypes.pdf it might be easy to make an extensible XMPP library :) But, I am not convinced that it can't be done with what we have today.