Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: replace table of raft implementations with link to raft web page

Intro

LogCabin is a distributed system that provides a small amount of highly replicated, consistent storage. It is a reliable place for other distributed systems to store their core metadata and is helpful in solving cluster management issues. LogCabin is still in early stages of development and is not yet recommended for actual use.

...

Other Raft Implementations

For lack of a better sort order, these are sorted by language, then name.

NamePrimary AuthorsLanguageLicenseStatusWeb siteRow last updated*
bspolley/raft

Alex Kaiser, Brennan Polley, Helen Weng (Berkeley)

BloomN/ALeader election and log replication at least partially implemented. Actual status unclear.https://github.com/bspolley/raft2013-05-18
noeleo/raft

Noel Moldvai, Rohit Turumella, Josh Muhlfelder, James Butkovic (Berkeley)

BloomSimplified BSD

Leader election and log replication implemented (barring a few open Issues on github).

No persistence, static membership, no log compaction.

https://github.com/noeleo/raft2013-05-25
whitewater

Adam Midvidy, Anh Mai, Karoun Kasraie, Sanketh Katta (Berkeley)

BloomMIT

Leader election and log replication implemented but with some correctness issues.

Static membership. No log compaction.

https://github.com/amidvidy/whitewater2013-05-18
NRaftBert Willems (Premotion)C#MITN/Ahttps://github.com/PremotionSoftwareSolutions/NRaft2013-09-02
RAFTiNGCyrille DupuydaubyC#Apache2N/Ahttps://github.com/dupdob/RAFTiNG2013-09-02
raft-cljJohn WeaverClojureEclipseN/Ahttps://github.com/saebyn/raft2013-06-20
draftPatrick Van SteeElixirN/AN/Ahttps://github.com/vanstee/draft2013-06-20
eraftUwe DauernheimErlangN/AN/Ahttps://github.com/djui/eraft2013-05-18
huckleberryJakob SieversErlangN/AN/Ahttps://github.com/cannedprimates/huckleberry2013-05-18
rafterAndrew J Stone (Basho)ErlangApache2N/Ahttps://github.com/andrewjstone/rafter2013-05-31
rafterlEric MoritzErlangN/AJust started, not surehttps://github.com/ericmoritz/rafterl2013-05-25
FlottenHenrik Feldt (Jayway)F#MIT

Some leader election implemented; log replication unclear.

Static membership. No log compaction.

https://github.com/haf/Flotten2013-05-18
apokalyptik/raftDemitrious KellyGoGPL3N/Ahttps://github.com/apokalyptik/raft2013-09-02
graftBen Mills (Braintree)GoN/AN/Ahttps://github.com/dev-urandom/graft2013-09-02
go-raftBen B. Johnson (Sky database)GoMIT

Leader election and log replication implemented.

Can reconfigure cluster only by adding/removing one server at a time.

Log compaction implemented though with a known bug.

https://github.com/goraft/raft

2013-07-05

peterbourgon/raftPeter Bourgon (SoundCloud)GoSimplified BSDLeader election, log replication, reconfiguration implemented. Compaction not yet implemented.https://github.com/peterbourgon/raft2013-07-05
pontoonMatt ReifersonGoN/AN/Ahttps://github.com/mreiferson/pontoon2013-09-02
seaturtlesLionel Barrow (Braintree)GoN/AN/Ahttps://github.com/lionelbarrow/seaturtles2013-09-02
kontikiNicolas TrangezHaskellBSDLeader election implemented; log replication (mostly?) implementedhttps://github.com/NicolasT/kontiki2013-10-21
mgodave/raftDave RusekJavaN/ALeader election implemented; no log replication yet?https://github.com/mgodave/raft2013-06-02
Raft-JVMTim Kellogg (Alteryx)JavaN/Abasically emptyhttps://github.com/tkellogg/Raft-JVM2013-09-04
benbjohnson/raft.jsBen Johnson (Sky)JavascriptMIT

N/A

https://github.com/benbjohnson/raft.js

2013-09-02

kanaka/raft.jsJoel MartinJavascriptMPL-2.0implements all the functionality except duplicate client request elimination and log compactionhttps://github.com/kanaka/raft.js2013-09-16
ocaml-raftHeidi Howard (Cambridge)OCamlN/AN/Ahttps://github.com/heidi-ann/ocaml-raft2013-09-02
py-raftToby BurressPythonpublic domainN/Ahttps://github.com/kurin/py-raft2013-09-02
flossAlexander FlatterRubyMITN/Ahttps://github.com/celluloid/floss2013-06-20
harryw/raftHarry WilkinsonRubyMITN/Ahttps://github.com/harryw/raft2013-06-20
zodiac-primeEvan Phoenix (LivingSocial)RubyMITN/Ahttps://github.com/evanphx/zodiac-prime2013-09-02

* This information will become stale. Please prod Diego if you want it updated.This information has moved to the Raft web page: http://raftconsensus.github.io

Related work

Chubby (Google)

...

Viewstamped Replication: A New Primary Copy Method to Support Highly-Available Distributed Systems (PODC '88)