[JDEV] libjabber, libxode, Jabber standards, etc.
Robert Norris
rob at cataclysm.cx
Thu Jun 27 19:08:57 CDT 2002
> In an earlier post to this mailing list (Subject: [JDEV] libjabber
> maintainers?) I asked whom is responsible for libjabber maintenance
> and development, that I might request a slight change. No answer.
> Looking about (Google, etc.) I find "libjabber" stashed in
> directories named things like "archive(s)," "old," etc. Is libjabber
> dead? I suppose that would explain why I received no answer. (The
> folks listed in AUTHORS.libjabber didn't reply to my query, either.)
As far as I understand it, libjabber is effectively the contents of
jabberd/lib in the jabberd server distribution. libjabber as a seperate
project has not been maintained for a long time, but jabberd/lib is
looked after as part of the normal 1.4 maintenance.
(Whether or not that means it has changed substantially, I don't know).
> Next it came to our attention that somebody has split-out the libxode
> bits and created an independent libxode (Ref:
> http://libxode.sourceforge.net/). Assuming that libjabber lives, do
> its maintainers plan to re-do it to use the new, independent libxode?
> Or will there continue to be two of these? Duplicated effort?
Looking at this, it seems it hasn't been touched in a long time. To my
knowledge, libxode won't be merged into the jabberd 1.4 codebase because
xmlnode's aren't being used anymore in the 1.5 development. We felt that
they are too heavy for the kind of work we need them for.
Jer has implemented a lightweight DOM-like interface for 1.5 called
"nad" (Not a DOM) which, based on testing, appears to operate at least
ten times faster that xmlnodes. Based on my experience with it, its very
light XML editing features are more than enough - you may like to check
it out:
http://jabberstudio.org/cgi-bin/viewcvs.cgi/jabberd/jadc2s/util/nad.c
And some uses (constructing fragments both programatically and from
expat callbacks):
http://jabberstudio.org/cgi-bin/viewcvs.cgi/jabberd/jadc2s/authreg.c
http://jabberstudio.org/cgi-bin/viewcvs.cgi/jabberd/jadc2s/util/config.c
> The above issues become important for many reasons, not the least of
> which is the Gaim project is looking to re-doing config files, etc.
> in XML. So we're looking to move the XML bits of libjabber from the
> Jabber plugin part of the source tree into the main-line code parts.
xmlnodes (and thus libxode) are quite capable and do perform well - the
1.4 server is based on them, after all! Moving it into your main code
and using it more extensively should not cause problems.
> Then I discovered there's a disparity between jid.c:jid_safe() and
> the Jabber IETF specs. jid_safe() limits the "username" part of a
> JID to alpha-num, ".", "-" and "_", whereas the IETF Draft document
> says that "node identifiers" can consist of anything *but*
> double-quote, "&", single-quote, ":", "<", ">" and "@". (Ref:
> http://www.jabber.org/ietf/draft-miller-jabber-00.html#entity-node)
The IETF spec is authorative. jid_* is on the todo list for reworking in
1.5 anyway, so I expect this sort of thing will be addressed there.
Rob.
--
Robert Norris GPG: 1024D/FC18E6C2
Email+Jabber: rob at cataclysm.cx Web: http://cataclysm.cx/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <https://www.jabber.org/jdev/attachments/20020628/96b6e77c/attachment-0002.pgp>
More information about the JDev
mailing list