Skip to content
/ raft Public
forked from willemt/raft

C implementation of the Raft Consensus protocol, BSD licensed

License

Notifications You must be signed in to change notification settings

MapQuest/raft

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

https://travis-ci.org/willemt/raft.png https://coveralls.io/repos/willemt/raft/badge.png

What?

C implementation of the Raft Consensus protocol, BSD licensed

How does it work?

See raft.h for full documentation.

A CRaft user needs to implement all the functions in raft_cbs_t.

Networking is out of scope for this project. The implementor will need to do all the plumbing. Currently, this is done by:

  • Implementing all the callbacks within raft_cbs_t; and
  • Calling raft_recv_* functions with msg_* message structs

Dependencies

There are no dependencies, however https://github.com/willemt/linked-List-queue is required for testing.

Building

$make tests

Todo

  • Member changes
  • Log compaction
  • More scenario tests (ie. more varied network partition scenarios)
  • Usage example

About

C implementation of the Raft Consensus protocol, BSD licensed

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published