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