Zeek's Messaging Library
jsiwek GH-31: fix python binding broker.Store.keys() method
It could throw a runtime error on query failures instead of returning
None like other such data store methods.
Latest commit d8617fa Dec 13, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
3rdparty @ 6f401c0 Update submodules to use github.com/zeek Dec 6, 2018
bindings/python GH-31: fix python binding broker.Store.keys() method Dec 13, 2018
broker GH-31: fix python binding broker.Store.keys() method Dec 13, 2018
cmake @ 56143d2 Updating submodule(s). Dec 10, 2018
doc Update python.rst Nov 29, 2018
docs Workaround bug in RtD requirements.txt location May 23, 2018
src Fix build with CAF_NO_EXCEPTION defined Nov 22, 2018
tests Backport broker-stream-benchmark to CAF 0.16.2 Dec 12, 2018
.clang-format Merge of topic/actor-system. May 21, 2018
.gitignore Merge of topic/actor-system. May 21, 2018
.gitmodules Update submodules to use github.com/zeek Dec 6, 2018
.travis.yml Disable clang test for Travis Trusty Nov 1, 2018
.update-changes.cfg Improve version number automation of version.hh May 25, 2018
.ycm_extra_conf.py Merge of topic/actor-system. May 21, 2018
CHANGES GH-31: fix python binding broker.Store.keys() method Dec 13, 2018
CMakeLists.txt Propagate --build-static and --build-static-only to CAF Dec 6, 2018
CONTRIBUTING.md Merge of topic/actor-system. May 21, 2018
COPYING Tagging version as 1.0. May 21, 2018
Makefile Improve `make dist` Aug 31, 2018
README Remove README acknowledgements as missing commits are now in master Oct 5, 2018
README.rst Add README.rst symlink Dec 1, 2015
VERSION GH-31: fix python binding broker.Store.keys() method Dec 13, 2018
configure Support more idiomatic build-dir syntax Oct 31, 2018

README.rst

Broker: Bro's Messaging Library

The Broker library implements Bro's high-level communication patterns:

  • remote logging
  • remote events
  • distributed data stores

Remote logging and events all follow a pub/sub communication model between Broker endpoints that are directly peered with each other. An endpoint also has the option of subscribing to its own messages. Subscriptions are matched prefix-wise and endpoints have the capability of fine-tuning the subscription topic strings they wish to advertise to peers as well as the messages they wish to send to them.

The distributed data store functionality allows a master data store associated with one Broker endpoint to be cloned at peer endpoints which may then perform lightweight, local queries against the clone, which automatically stays synchronized with the master store. Clones cannot modify their content directly, instead they send modifications to the centralized master store which applies them and then broadcasts them to all clones.

Applications which integrate the Broker library may communicate with each other using the above-mentioned patterns which are common to Bro.

See the User Manual for more information. For offline reading, it's also available in the doc/ directory of the source tree.

Dependencies

Compiling Broker requires the following libraries/tools to already be installed:

The optional Python bindings also require Python 2.7 or greater along with Python development packages. For Python 2.7, you'll also need the ipaddress backport from Python 3.

By default, Broker will use an integrated version of the C++ Actor Framework (CAF; https://actor-framework.org), though there's still the option to specify an exernal CAF version via the --with-caf= configure script option.

Compiling/Installing

To compile and install into /usr/local:

./configure
make
make install

See ./configure --help for more advanced configuration options.