This is a library which implements Raft Consensus Algorithm, which is used to achieve an agreement for the state of the server as the state changes.
The Raft::Server
class represents one server in the cluster. It holds the persistance and volatile server state that is specific to the algorithm.
The actual "log", as described by the algorithm, is handled as an abstraction so that the algorithm can be applied to many different server implementations.
This is a C application which depends on the C compiler and standard C library. The program currently compiles for Linux, and it supported on almost any platform. The following are recommended toolchains for popular platforms.
- Windows -- Visual Studio (Microsoft Visual C++)
- Linux -- clan or gcc
- MacOS -- Xcode (clang)
This library is not intended to stand alone. It is intended to be included in a larger project which uses Makefile or CMake to generate the build system and build applications which will link with the library.
There are two distinct steps in the build process:
- Generation of the build system, using Makefile
- Compiling, linking, etc.