[Haskell-cafe] ANN: XMPP 0.0.1

Jeremy Shaw jeremy.shaw at linspireinc.com
Sat Apr 7 23:01:41 EDT 2007


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.



More information about the Haskell-Cafe mailing list