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).
Linux, macOS, and FreeBSD are supported at the moment. Builds may succeed with other BSDs, but they have not been verified.
All platforms
- Submodules
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)