awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
willemt avatar

willemt/raft

0
View on GitHub↗
1,168 stars·275 forks·C·18 views

Raft

Raft is a portable C programming library that implements the Raft distributed consensus protocol. It serves as a state machine replication engine and coordination primitive for building fault-tolerant distributed applications and clustered systems.

The library manages leader election timeouts, heartbeat monitoring, and log replication across peer nodes to maintain consistent state across servers. It handles client write operations, redirects requests from non-leader nodes, processes voting and replication messages, and supports dynamic cluster membership changes through specialized log entries and notifications.

For data management and system integration, the engine captures point-in-time state snapshots and trims older log entries to recover disk space. It relies on application integration hooks to bridge the consensus engine with external messaging, log application, and persistent storage infrastructure, while timing mechanisms advance election and heartbeat intervals through host application event loops.

Features

  • Consensus-Based State Replication - Coordinates node elections, heartbeat monitoring, and log replication across a cluster to maintain consistent state across servers.
  • Raft Consensus Implementations - Implements the Raft distributed consensus protocol in C for building fault-tolerant replicated state machines and clustered systems.
  • Consensus Engines - Coordinates leader election, log replication, and cluster membership changes across peer nodes as a state machine replication engine.
  • Protocol Message Deserializers - Deserializes incoming network messages for voting and log replication, processes state transitions, and generates corresponding response payloads.
  • Dynamic Cluster Membership Management - Dynamically adds or removes cluster nodes through specialized log entries and membership notification callbacks to safely scale the system.
  • Snapshot-Based Compactions - Captures point-in-time snapshots of the state machine and trims older log entries to recover memory and disk space.
  • Raft Implementations - Builds fault-tolerant distributed systems and replicated state machines using the Raft consensus algorithm for reliable data synchronization.
  • Client Write Processors - Appends incoming write operations to the replicated log, redirects non-leader clients, and manages client acknowledgments.
  • Replicated Log Management - Manages append-entries RPCs and maintains persistent disk journals to ensure ordered synchronization across cluster peers.
  • Quorum-Based Elections - Drives leader election timeouts and validates majority acknowledgments before committing state transitions or cluster changes.
  • Replicated State Machines - Processes replicated log commands sequentially to transition state deterministically across all nodes in the distributed cluster.
  • C Libraries - Provides a portable programming library offering core coordination primitives for fault-tolerant distributed applications.
  • Consensus Ticker Utilities - Drives timed background checks and timeout handling by invoking periodic tick functions at regular intervals through external timers.
  • Event Loop Injections - Advances election and heartbeat timeouts by injecting regular interval ticks from the host application event loop.
  • Consensus Hook Interfaces - Implements required hooks for messaging, log application, and persistent storage to bridge the consensus engine with application infrastructure.
  • Server Instantiation Routines - Instantiates new consensus server instances and configures cluster topology by registering peer nodes with unique identifiers and user data pointers.
  • Consensus Integration Bridges - Bridges the core consensus state machine with external networking and storage systems through a strict function hook interface.
  • Timeout Progress Tickers - Triggers periodic timers at regular intervals to advance timeouts and move background consensus state transitions forward.

Star history

Star history chart for willemt/raftStar history chart for willemt/raft

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Raft

These projects share indexed features with Raft. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • sofastack/sofa-jraftsofastack avatar

    sofastack/sofa-jraft

    3,806View on GitHub↗

    sofa-jraft is a Java implementation of the Raft consensus algorithm. It serves as a distributed consensus engine and linearizable state machine designed to ensure high availability and data consistency across a cluster of nodes. The project provides a replicated key-value store and a coordination engine for managing distributed state. It distinguishes itself through support for multi-group consensus sharding to distribute traffic and a service provider interface that allows for custom log storage and entry encoding implementations. The system covers a wide range of distributed capabilities,

    Javaconsensusdistributed-consensus-algorithmsjava
    View on GitHub↗3,806
  • goraft/raftgoraft avatar

    goraft/raft

    2,435View on GitHub↗

    Raft is a Go library implementing the Raft consensus protocol for coordinating reliable state machine replication across a cluster. It functions as a distributed systems library for building applications that require strongly consistent replicated state, keeping distributed nodes synchronized and fault-tolerant through automated node elections and log distribution. The library conducts periodic node elections using majority votes to designate a single data authority and prevent split-brain conflicts, while distributing deterministic command logs from leaders to follower nodes using a multi-ph

    Go
    View on GitHub↗2,435
  • hashicorp/rafthashicorp avatar

    hashicorp/raft

    9,037View on GitHub↗

    This is a Raft consensus library and distributed consensus engine implemented in Go. It provides the primitives necessary to build fault-tolerant distributed services by implementing a replicated state machine that ensures a group of servers agree on a shared system state through leader election and log replication. The project distinguishes itself through a pluggable architecture for storage backends and snapshot storage, decoupling the consensus logic from physical persistence. It includes specialized mechanisms for leadership transfer, protocol version management to support rolling upgrade

    Go
    View on GitHub↗9,037
  • maemual/raft-zh_cnmaemual avatar

    maemual/raft-zh_cn

    6,287View on GitHub↗

    This project is a Chinese language translation of the original research paper detailing the Raft consensus protocol. It serves as a technical research translation and a consensus protocol guide, making the specifications of the Raft algorithm accessible to Chinese speakers. The documentation covers the core mechanisms of distributed systems, including leader election, log replication, and safety protocols. It provides a detailed explanation of how to maintain a single source of truth across multiple servers to achieve fault-tolerant cluster management. The material addresses distributed stat

    chineseraft
    View on GitHub↗6,287
Compare all 30 related projects→

Frequently asked questions

What does willemt/raft do?

Raft is a portable C programming library that implements the Raft distributed consensus protocol. It serves as a state machine replication engine and coordination primitive for building fault-tolerant distributed applications and clustered systems.

What are the main features of willemt/raft?

The main features of willemt/raft are: Consensus-Based State Replication, Raft Consensus Implementations, Consensus Engines, Protocol Message Deserializers, Dynamic Cluster Membership Management, Snapshot-Based Compactions, Raft Implementations, Client Write Processors.

Which projects share features with willemt/raft?

Projects with overlapping indexed features include: sofastack/sofa-jraft — sofa-jraft is a Java implementation of the Raft consensus algorithm. It serves as a distributed consensus engine and… goraft/raft — Raft is a Go library implementing the Raft consensus protocol for coordinating reliable state machine replication… hashicorp/raft — This is a Raft consensus library and distributed consensus engine implemented in Go. It provides the primitives… maemual/raft-zh_cn — This project is a Chinese language translation of the original research paper detailing the Raft consensus protocol.… async-raft/async-raft — Async-raft is an asynchronous consensus framework built on Rust for coordinating replicated state machines across… wenweihu86/raft-java — Raft-java is a lightweight Java consensus library and replicated state machine engine designed to synchronize…

Curated searches featuring Raft

Hand-picked collections where Raft appears.
  • Distributed consensus algorithm