[JDEV] Jabber Component Runtime (JCR) Pre-Release

Paul Curtis pcurtis at terrapin.com
Sat Oct 18 18:06:50 CDT 2003

This is pre-release announcement for the Jabber Component Runtime (JCR).
The JCR is designed to allow components written in "C" for the jabberd
1.4.x codebase to be run as standalone processes. What this means is
that you compile the library, and then compile your component
against this library (and the included 'main.c') to produce a
standalone component.

Most of the commonly used jabberd 1.4.x functions (in the initial release)
are included with some notable exceptions:

  --- mtq_* functions:
      These functions allow the developer to queue up data for a
      function using 'pth' queues. While this is a nice feature, it
      is not necessary (for the most part) to handle the packet

  --- mio_* functions:
      Currently, the mio_* functions are not ported (or wrapped) for
      inclusion in the library. I have found that using the 'glib'
      I/O channels provide the same functionality. For porting
      purposes, the code will have to be altered slightly to use
      'g_io' rather than mio.

The porting effort will depend how many of the above functions are
used. To maintain compatibility with compiling using the jabberd
1.4.x codebase, a define is set at compile time to allow the
developer to know whether the component is being compiled normally,
or with the jcr. The define, '_JCOMP' is set in the Makefile
provided (jcomp.mk) as an example.

The only dependency for the JCR is glib-2.0. This library provides
the asynchronous I/O as well as the event loop used in the main()

More information will be coming in the next few days, as well as a
preliminary release. The JCR has been compiled and used to build a
standalone MU-C component with great success. This implementation is
currently under test, and the configurations, etc. will be included in
the release as the primary example.

You can read the full README and INSTALL files at
http://jabber.terrapin.com/JCR. I am looking for more feedback to determine
interest and what other functions need to be included. In addition, this
library and runtime should make the transition to jabberd 2 much easier.

Any and all feedback is welcome, as well as questions ....


More information about the JDev mailing list