librelp is an easy to use library for the RELP protocol. RELP in turn provides reliable event logging over the network (and consequently RELP stands for Reliable Event Logging Protocol). RELP was initiated by Rainer Gerhards after he was finally upset by the lossy nature of plain tcp syslog and wanted a cure for all these dangling issues.

RELP (and hence) librelp assures that no message is lost, not even when connections break and a peer becomes unavailable. The current version of RELP has a minimal window of opportunity for message duplication after a session has been broken due to network problems. In this case, a few messages may be duplicated (a problem that also exists with plain tcp syslog). Future versions of RELP will address this shortcoming.

Please note that RELP is a general-purpose, extensible logging protocol. Even though it was designed to solve the urgent need of rsyslog-to-rsyslog communication, RELP supports many more applications. Extensible command verbs provide ample opportunity to extend the protocol without affecting existing applications.

librelp has matured. It is suggested not to use releases older than 0.1.3. Further development is done, but at slow pace and on an as-needed basis.

  • 2013-05-13 librelp 1.0.7 [download]: removed relpCltConnect2() API which was against librelp API philosophy. This was only introduced in 1.0.6 and been in the code for a very short time. So we decided that the best thing to do is actually remove it (there is NO known released user, this change was for yet unreleased rsyslog 7.5.0). [sha256 hash: 615df51cbbd6e62ed3900e1934e79c2ac02b533c01de20d28009968e54e93779]
  • 2013-05-06 librelp 1.0.6 [download]: enhanced API to permit binding a client to a specific IP address [sha256 hash: 9b4304ff3302c60be03bb9bed82d15420bce51b72f836877e47622cd5417f6ab]
  • 2013-04-24 librelp 1.0.5 [download]: bugfix for compile problem on Solaris (Thanks to John Lyman for the patch) [sha256 hash: 5e98bf47d81cbe1ec0ea99fc42595943904c0cac11d5966408e4afcbca34d972]
  • 2013-04-10 librelp 1.0.3 [download]: added support for user-settable shutdown indicator, improved timeout handling [sha256 hash: bc052f061d79a0254b29a38b15d32757561c6e83a8fa91598943098b18aa9bff]
  • 2013-03-15 librelp 1.0.2 [download]: added capability to support only IPv4/v6 instead of both [sha256 hash:d8ef77cb00f7d4db9ff96157242b3e4fb0eb0d68d7e846fcf12dc5fed92e4d4a]
  • 2012-09-06 librelp 1.0.1 [download]: capability to stop server without canceling its thread, bugfix: interrupt of select() not properly handled.
  • 2009-12-11 librelp 1.0.0 [download]: bugfix: IP address is now posted to callback function
  • 2009-02-10 librelp 0.1.3 [download]: some bugfixes, interface extension
  • 2008-04-09 librelp 0.1.1 [download]: minor feature update
  • 2008-04-01 librelp 0.1.0 [download]: initial release

Note: librelp 0.1.2 was an internal release and is thus not shown here.

RELP protocol is supported by rsyslog's imrelp and omrelp plugins.

Some more useful links:

Feebback on the relp project is welcome. Please use the RELP mailing list or the librelp forum to provide it.

Librelp is released under the GPLv3 and also available under a commercial license.


Copyright © 2008, 2009 Rainer Gerhards. page generated: Monday, 20-May-2013 06:19:33 CEST.