Production grade asynchronous C implementation of the Raft consensus protocol.
See readthedocs for the full documentation.
autoreconf -i
./configure
make
This library is a fork of Canonical's Raft implementation, which was originally written by this library's author himself while working at Canonical.
It is a fully compatible drop-in replacement of Canonical's version, at least up to v0.18.0.
This raft C library is released under a slightly modified version of LGPLv3, that includes a copyright exception letting users to statically link the library code in their project and release the final work under their own terms. See the full license text.
Of course the biggest thanks goes to Diego Ongaro :) (the original author of the Raft dissertation).
A lot of ideas and inspiration was taken from other Raft implementations such as:
- CoreOS' Go implementation for etcd
- Hashicorp's Go raft
- Willem's C implementation
- LogCabin's C++ implementation