raft / raft.github.io

website at https://raft.github.io
1.38k stars 215 forks source link

Add canonical/raft C library implementation #109

Closed freeekanayaka closed 5 years ago

freeekanayaka commented 5 years ago

This is a fully asynchronous and single-thread C library implementing the raft algorithm. It has modular design so you can swap out the I/O implementation if needed, but it also comes with batteries included and a stock I/O implementation based on libuv, so it should pretty straightforward to use.

Besides leader election, log replication, membership changes and compaction, it also includes a few optional enhancements:

It has been used in production for a few months now as backend raft engine for the dqlite project (a distributed version of SQLite), which is in turn used by LXD (a systems container manager).

ongardie commented 5 years ago

thanks @freeekanayaka, merged