libab is a C library (implemented in C++) to broadcast messages to a cluster of nodes. libab also provides powerful properties for broadcasted messages:
- Each successfully broadcasted message is guaranteed to be delivered to a majority of the nodes.
- Broadcasted messages are fully serialized through an elected leader.
Traffic is sent over TCP with transparent reconnections.
Encryption is also supported and is implemented using tweetnacl with a shared key (provided by the user).
Dependencies and Building
Linux, macOS, and FreeBSD are supported at the moment. Builds may succeed with other BSDs, but they have not been verified.
git submodule update --init --recursive
- CMake 3.0 or higher
- A compiler that supports C++14
Continue to Building.
cd build cmake .. make sudo make install # Optional
BSD (see LICENSE)