Middleware for distributed applications
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bindings
cmake/Modules
contrib/proto2cpp
examples
gui
include
protobuf
src
tests
.gitignore
.gitmodules
CHANGELOG.md
CMakeLists.txt
LICENSE.md
README.md
TODO.md
config.h.in
notes.txt

README.md

BlueZero v1

BlueZero (in short, "B0") is a cross-platform middleware which provides tools for interconnecting pieces of software running in multiple threads, processes or machines.

It has some similarities with ROS, although it only focuses on providing communication paradigms (client/server and publisher/subscriber) and message transport (based on ZeroMQ), while being agnostic to message serialization format or common protocols and data structures.

Documentation

See the generated docs/index.html for the documentation.

License

See LICENSE.md.

Dependencies

Required Libraries

  • ZeroMQ v4.1+
  • Protocol Buffers v2.6+
  • Boost v1.54+

Optional Libraries

  • zlib (for compressing payloads)
  • lz4 (for compressing payloads)
  • Doxygen (for generating documentation)
  • Graphviz (for generating documentation)
  • mscgen (for generating documentation)

Ubuntu 16

Install the following apt packages:

  • libprotobuf-dev
  • protobuf-compiler
  • libzmq-dev
  • libboost-all-dev

Ubuntu 14

Install the following apt packages:

  • libboost-all-dev

The apt packages for Protobuf and ZeroMQ from apt repository are too old. Compile and install them from git repositories:

macOS (homebrew)

Install the following:

  • zeromq
  • protobuf
  • boost
  • lz4

Compiling

git clone --branch v1 --recursive https://github.com/BlueWorkforce/bluezero
cd bluezero
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_GUI=ON -DBUILD_EXAMPLES=ON ..
make

Optionally, generate the documentation (requires Doxygen, Graphviz and mscgen installed):

make doc

Optionally, run unit tests:

make test