Light Weight Event System C library
C Makefile Yacc Perl M4 Shell Lex

README.md

Build Status

The LWES Light Weight Event System is a framework for allowing the exchange of information from many machines to many machines in a controlled, platform neutral, language neutral way. The exchange of information is done in a connectless fashion using multicast or unicast UDP, and using self describing data so that any platform or language can translate it to it's local dialect.

This leads to a system with the following features

  • Fire and Forget messaging
  • Decoupling of senders (emitters) from receivers (listeners, journallers)
  • Centerless, no single point of failure
  • Support for many to many communication where nodes can enter and leave the system at any time.
  • Computer language and hardware platform independent

The system consists of two major components

  • Emitter - a source of events, this is usually a server or process which wants to announce something
  • Listener - a sink of events which deserializes and processes events on the fly as they are received.

There is also a custom listener which defers deserialization until some point in the future, and simply captures and writes the events to a log. This is in the lwes-journaller package, and is called a journaller.

This library is the C implementation of the LWES. There are also wrappers for various scripting languages, and a pure java implementation packaged separately. All are wire format compatible.

For more information on developing with the LWES see http://lwes.github.io

Mac Install Commands

> git clone https://github.com/lwes/lwes.git
> cd lwes
> ./bootstrap && ./configure --disable-hardcore && make && make check
> sudo make install