Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/preetam/libab
Another broadcast library
https://github.com/preetam/libab
Last synced: 3 months ago
JSON representation
Another broadcast library
- Host: GitHub
- URL: https://github.com/preetam/libab
- Owner: Preetam
- License: bsd-3-clause
- Created: 2016-01-26T03:55:41.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2019-02-24T02:55:46.000Z (almost 6 years ago)
- Last Synced: 2024-06-19T14:53:45.109Z (7 months ago)
- Language: C++
- Homepage:
- Size: 215 KB
- Stars: 9
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ![libab](https://cloud.githubusercontent.com/assets/379404/14627354/8b207cb0-05c1-11e6-869b-4d8d33e369ee.png)
[![Circle CI](https://circleci.com/gh/Preetam/libab.svg?style=svg&circle-token=2aa19d53d438447eae03021c0e99571e8ceb5207)](https://circleci.com/gh/Preetam/libab) [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://github.com/Preetam/libab/blob/master/LICENSE)
libab is a C library (implemented in C++) to broadcast messages to a cluster of nodes. libab also
provides powerful properties for broadcasted messages:1. Each successfully broadcasted message is guaranteed to be delivered to a majority of the nodes.
2. 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](https://tweetnacl.cr.yp.to/)
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.### Requirements
**All platforms**
- Submodules
- `git submodule update --init --recursive`
- CMake 3.0 or higher
- A compiler that supports C++14Continue to [Building](#building).
### Building
```sh
cd build
cmake ..
make
sudo make install # Optional
```## License
BSD (see LICENSE)