Today libprelude 0.9.19 was release (read notes).

To me this is the best release ever because not only the library is very mature, but it allows you to use what we' ve called the easy bindings.

In short, with the easy bindings, you can install prelude, use its components and with a bit of Python/Lua/Ruby/Perl (swig allows other languages) to do:

import PreludeEasy
from PreludeEasy import ConnectionPool, Connection

c = PreludeEasy.ClientEasy("YourEventReader", PreludeEasy.Client.IDMEF_READ)
c.SetFlags(PreludeEasy.Client.CONNECT)

pool = c.GetConnectionPool()
pool.AddConnection(Connection("127.0.0.1"))

idmef = PreludeEasy.IDMEF()

while 1:
    ret = c.RecvIDMEF(idmef, 100)
    if ret and not idmef.Get("heartbeat.create_time"):
        print "Alert:%s" % (idmef.Get("alert.classification.text") or "(unknown)")