Skip to content

fatman2021/raft

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

image

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

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 96.7%
  • Makefile 1.7%
  • Other 1.6%