Epeios: Write a module for an XMPP server once, run it everywhere

We have just released a development version of our Epeios application. Epeios allows to run an ejabberd module on any XMPP server supporting the component protocol.

Epeios: an end user point of view

Following our recent call to keep the component protocol alive (see: From Jabber to XMPP: a symbol for IM standard and convergence), ProcessOne has just released Epeios. Epeios allows to run a module developed for ejabberd with other XMPP server such as Jabberd2.

For administrators, it means that you should be able to use the XMPP server of your choice, with extension modules coming from ejabberd. You will ultimately be able to use your existing XMPP server, while getting the full advantages of the module coming from the ejabberd community. Modules will be able, for example, to use the clustering features of ejabberd and Erlang.

We hope that this new development tool will also encourage developers to write components in a very high-level language that provides lots of innovative features, while keeping the ability to use and share components with any other servers. The module will run optimized in ejabberd but will run on any other servers. This is our commitment on interoperability and convergence in the XMPP world.

Epeios: A developer point of view

We have just released a development version of our Epeios application. Epeios allows to run an ejabberd module on any XMPP server supporting the component protocol.

This is a preview release, mainly targeting XMPP developers. However, it should be usable right now, as it has been used in production for quite a long time.

Limitations: For now, the ejabberd modules that can be run with epeios must not use any ejabberd hooks or handlers. The module can work, but the feature that are linked to a hook will be ignored. Improving the XEP-0114 to extend the field of this software is however a work in progress.

Roadmap: Next steps

We are currently working on:

  • Improving the packaging of Epeios.
  • Write tutorials on how to use Epeios with various XMPP servers.
  • Extending the XEP-0114 protocol to allow to use more XMPP server features from inside a component.

How to get started ?

Here are the following steps under a Unix-like system:

  • Install Erlang R11B-2
  • Check out the Epeios code from SVN:
    svn co https://svn.process-one.net/ejabberd-modules/epeios/trunk epeios-1.0.0
    

    Note that the name of the target directory (epeios-1.0.0) is important.

  • Change to the epeios dir:
    cd epeios-1.0.0
    
  • In the modules dir: You can add Erlang binary of your own Erlang modules.
  • Edit the config file sys.config.mk to match your module and local value. One of the variable you need to update is epeios_lib_path.
  • Build Epeios, with the command:
    ./build.sh
    
  • Launch epeios (and thus the ejabberd module you want to run as component) from epeios-1.0.0 root directory and type the command:
    priv/epeios.start
    

This version is provided with the ejabberd pubsub module. It should allow you to use pubsub with any server !

Your comments and wish lists are welcome !


Let us know what you think 💬


Leave a Comment


This site uses Akismet to reduce spam. Learn how your comment data is processed.