Skip to content


Switch branches/tags

The Raft Consensus Algorithm

This is the repo for the Raft website:

Please contribute to the website by submitting pull requests (preferably) or creating issues. The most common way people contribute is by adding a new implementation to implementations.json. Note that the file is ordered lexicographically by GitHub repo URL, and this is strictly enforced by automated checks.

When you submit a PR, ./ will make sure the data is well-formed. If you want to run it locally, you'll need the jsonschema library first:

pip3 install jsonschema

You can use a Python virtual environment if you are unable to or don't want to install jsonschema globally. See for instructions.

The website is hosted as a GitHub static page at To run it locally, make sure you've checked out all the submodules:

git submodule update --init --recursive

Then start a local static webserver:

python3 -m http.server 8000 --bind localhost

and open http://localhost:8000/. The server is needed to allow index.html to pull down implementations.json.

The implementations are sorted on the website according to GitHub stars and last update time. This information is cached on a separate server a few times a day, so new implementations will initially appear at the bottom of the table for a few hours.

This work is licensed under a Creative Commons Attribution 3.0 Unported License. See for details.