76 lines
2.9 KiB
Plaintext
76 lines
2.9 KiB
Plaintext
.. _User Manual: https://docs.zeek.org/projects/broker
|
|
|
|
================================
|
|
Broker: Zeek's Messaging Library
|
|
================================
|
|
|
|
The Broker library implements Zeek'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 Zeek.
|
|
|
|
See the `User Manual`_ for more information. For offline reading, it's
|
|
also available in the ``doc/`` directory of the source tree.
|
|
|
|
See the NEWS file for the most important release notes and the CHANGES
|
|
file for the complete history of changes.
|
|
|
|
Dependencies
|
|
------------
|
|
|
|
Compiling Broker requires the following libraries/tools to already be
|
|
installed:
|
|
|
|
* C++ compiler with C++17 support (GCC 7+, Clang 4+, MSVC 19.14+)
|
|
* OpenSSL headers/libraries (http://www.openssl.org)
|
|
* CMake 3.0 or greater (https://cmake.org)
|
|
|
|
The optional Python bindings also require Python 3.5 or greater
|
|
along with Python development packages.
|
|
|
|
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
|
|
--------------------
|
|
|
|
On UNIX, we provide a ``configure`` script to automate the CMake setup. To
|
|
compile and install into ``/usr/local``::
|
|
|
|
./configure
|
|
make
|
|
make install
|
|
|
|
See ``./configure --help`` for more advanced configuration options.
|
|
|
|
On Windows, we support MSVC natively. We do not support builds via MinGW or
|
|
Cygwin. For Windows builds, please use CMake directly and use the CMake
|
|
generator for your Visual Studio version. Afterwards, you can either open the
|
|
project file with Visual Studio to build Broker, or you can build directly from
|
|
the command line using CMake::
|
|
|
|
cmake --build <build-dir> --target install --config release
|
|
|
|
Please note that Broker currently only supports *static* builds on MSVC.
|