All Projects → zeek → Broker

zeek / Broker

Licence: other
Zeek's Messaging Library

Labels

Projects that are alternatives of or similar to Broker

Hermes
Fast and reliable message broker built on top of Kafka.
Stars: ✭ 665 (+1154.72%)
Mutual labels:  pubsub
Deepstream.io
deepstream.io server
Stars: ✭ 6,947 (+13007.55%)
Mutual labels:  pubsub
Emqx
An Open-Source, Cloud-Native, Distributed MQTT Message Broker for IoT.
Stars: ✭ 8,951 (+16788.68%)
Mutual labels:  pubsub
Iodine
iodine - HTTP / WebSockets Server for Ruby with Pub/Sub support
Stars: ✭ 720 (+1258.49%)
Mutual labels:  pubsub
React Apollo Koa Example
An example app using React, Apollo and Koa
Stars: ✭ 26 (-50.94%)
Mutual labels:  pubsub
Gopie
go patterns
Stars: ✭ 28 (-47.17%)
Mutual labels:  pubsub
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Set up once and forever.
Stars: ✭ 5,649 (+10558.49%)
Mutual labels:  pubsub
Engine And Editor
Streamr Core backend
Stars: ✭ 44 (-16.98%)
Mutual labels:  pubsub
Nats.rb
Ruby client for NATS, the cloud native messaging system.
Stars: ✭ 850 (+1503.77%)
Mutual labels:  pubsub
Pulsar
Apache Pulsar - distributed pub-sub messaging system
Stars: ✭ 10,118 (+18990.57%)
Mutual labels:  pubsub
Hemera
🔬 Writing reliable & fault-tolerant microservices in Node.js https://hemerajs.github.io/hemera/
Stars: ✭ 773 (+1358.49%)
Mutual labels:  pubsub
Sseredis
Redis Streams and PubSub to Server-Sent Event bridge in Go
Stars: ✭ 23 (-56.6%)
Mutual labels:  pubsub
Loowy
Lua WAMP client
Stars: ✭ 28 (-47.17%)
Mutual labels:  pubsub
Mitt
🥊 Tiny 200 byte functional event emitter / pubsub.
Stars: ✭ 6,945 (+13003.77%)
Mutual labels:  pubsub
Jdonframework
Domain-Driven-Design Pub/Sub Domain-Events framework
Stars: ✭ 978 (+1745.28%)
Mutual labels:  pubsub
Hivemq Community Edition
HiveMQ CE is a Java-based open source MQTT broker that fully supports MQTT 3.x and MQTT 5. It is the foundation of the HiveMQ Enterprise Connectivity and Messaging Platform
Stars: ✭ 562 (+960.38%)
Mutual labels:  pubsub
Libzmq
ZeroMQ core engine in C++, implements ZMTP/3.1
Stars: ✭ 7,418 (+13896.23%)
Mutual labels:  pubsub
Beaver
💨 A real time messaging system to build a scalable in-app notifications, multiplayer games, chat apps in web and mobile apps.
Stars: ✭ 1,056 (+1892.45%)
Mutual labels:  pubsub
Arduino Nats
An Arduino / ESP8266 / Particle Photon compatible C++ library for communicating with a NATS (http://nats.io) server
Stars: ✭ 44 (-16.98%)
Mutual labels:  pubsub
Pulsarcast
A pub-sub system for the distributed web - my master thesis @ IST
Stars: ✭ 33 (-37.74%)
Mutual labels:  pubsub

.. _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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].