Idavoll using Twisted Python.
What is Idavoll?
================
A pubsub service, as defined in JEP-0060, aiming to be fully compliant and
mostly complete. The goal is to build a /generic/ pubsub service, but of which
parts can be reused for building custom pubsub services for specific
applications.
Current Status
==============
There are two different backends: one using PostgreSQL for storage, and one
just keeping everything in memory.
In Idavoll the mimimal requirements of JEP-0060 version 1.6 are implemented.
It also returns the following features:
http://jabber.org/protocol/pubsub#outcast-affiliation
http://jabber.org/protocol/pubsub#publisher-affiliation
http://jabber.org/protocol/pubsub#persistent-items
http://jabber.org/protocol/pubsub#subscribe
http://jabber.org/protocol/pubsub#create-nodes
http://jabber.org/protocol/pubsub#instant-nodes
When using the PostgreSQL backend the following features are also supported:
http://jabber.org/protocol/pubsub#retrieve-items
Requirements
============
- Twisted >= 1.2.0
- The following patches to the twisted/xish directory:
http://mag.ik.nu/~ralphm/tmp/domish.py.patch
http://mag.ik.nu/~ralphm/tmp/utility.py.patch
http://mag.ik.nu/~ralphm/tmp/xpath.py.patch
- The following patches to the twisted/protocols/jabber directory:
http://mag.ik.nu/~ralphm/tmp/jid.py.patch
- Add the following file in the twisted/protocols/jabber directory:
http://mag.ik.nu/~ralphm/tmp/xmpp_stringprep.py
- A jabber server like jabberd 1.4.x
For the PostgreSQL backend, the following is also required:
- PostgreSQL
- pyPgSQL
Usage
=====
For jabberd 1.4 configuration, put the following in jabber.xml:
127.0.0.1
1238
mysecret
and restart jabberd.
Then, in the same directory as this file run:
mktap idavoll --rport=1238 --jid=pubsub.localhost --secret=1238
twistd -rf idavoll.tap
This uses the (default) memory based backend.
For using the PostgreSQL backend, create a database (for example named pubsub)
like so:
createdb pubsub
psql pubsub