#raft #distributed-systems #log #raft-consensus #algorithm #state #mephisto

nightly mephisto-raft

The rust language implementation of Raft algorithm

2 unstable releases

0.2.0 Nov 22, 2023
0.1.0 Oct 18, 2023

#2061 in Algorithms

Apache-2.0

415KB
8K SLoC

Mephisto

Mephisto implements the Raft protocol where an extended version of the Raft paper is available. The paper introduces Raft and states its motivations in following words:

Raft is a consensus algorithm for managing a replicated log. It produces a result equivalent to (multi-)Paxos, and it is as efficient as Paxos, but its structure is different from Paxos; this makes Raft more understandable than Paxos and also provides a better foundation for building practical systems.

License

This project is released under Apache License, Version 2.0.

Original sources are distributed under the same license with different copyright owner:

  • The authors of etcd-io/raft are noted as The etcd Authors.
  • The authors of tikv/raft-rs are noted as TiKV Project Authors.

To simplify conveying licenses, all the commits after the bootstrap one are made independently unless explicit noted.

The bootstrap commit includes the following modifications:

  • Replace slog with tracing.
  • Replace datadriven with goldenfiles.
  • Replace rust-protobuf and protobuf-build with prost.
  • Merge raft-proto into mephisto crate.
  • Stub implementations of Raft stores.

Acknowledgement

This project is derived from tikv/raft-rs. raft-rs is, recursively, derived from etcd-io/raft.

Dependencies

~1.3–8MB
~146K SLoC