An Implementation of Raft in Rust
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


An implementation of the Raft distributed consensus algorithm in Rust.

We set out to implement the Raft Consensus Algorithm in Rust. We joined an existing project by Michael, called Schooner. Raft is a Distributed Consensus Algorithm - this means that it is a system that can establish a consistent log across multiple machines in an asynchronous, lossy network (like those in the real world).

Raft was designed with understandability (and pedagogy) in mind, as opposed to Paxos, another consensus algorithm that is renowned for its obscure definition. Raft is new, but as a testament to its understandability, there are many more Open Source implementations of it than Paxos, despite Raft being about 20 years younger than Paxos.

Almost all the project documentation is in the project wiki, including a Glossary of terms, a condensed Raft guide, and an overview of the design of Schooner.

Building this Repo

You will need to install bleeding-edge Rust: we've been using mozilla/rust#35f3f7a

Then, from this directory run make. make test will build and run the tests (of which there are a few, but not many).


Other links about the Raft Algorithm:

The Wikipedia pages, describing:

Team Members

This was a project submitted as part of the Spring 2014 UVA Computer Science Operating Systems Course, and was developed by a group consisiting of:


The library is licensed under the permissive MIT License, as defined in the LICENCE file.