view README @ 127:d3689da18ed2

Don't use encode('utf-8') on serialized XML. Return unicode strings for get_items() Rename get_items_by_ids() to get_items_by_id() as in the interface. Make purge() work. Don't return item ids when removing items.
author Ralph Meijer <ralphm@ik.nu>
date Sun, 24 Apr 2005 17:21:43 +0000
parents 886caecb0030
children 71ec735ca5b0
line wrap: on
line source

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:

  <service id='pubsub.localhost'>
    <accept>
      <ip>127.0.0.1</ip>
      <port>1238</port>
      <secret>mysecret</secret>
    </accept>
  </service>

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 <db/pubsub.db

Then do:

  mktap idavoll --rport=1238 --jid=pubsub.localhost --secret=1238 \
                --backend=pgsql
  twistd -rf idavoll.tap

For viewing all options, run:

  mktap idavoll --help

Contact
=======

Questions, comments or suggestions are welcome!

Ralph Meijer
<xmpp:ralphm@ik.nu>