Skip to content

Latest commit

 

History

History
43 lines (29 loc) · 1.87 KB

File metadata and controls

43 lines (29 loc) · 1.87 KB

Kraft 🦀

Build Status License Rust

Kraft is a distributed, strongly consistent Key-Value store implemented in Rust. It relies on the Raft consensus algorithm to manage log replication and ensure fault tolerance across a cluster of nodes.

Designed for performance and safety, Kraft aims to provide a reliable storage solution while leveraging Rust's memory safety guarantees and asynchronous capabilities.

⚠️ Note: This project is currently under active development (WIP).

🌟 Key Features

  • Raft Consensus: Implements Leader Election, Log Replication, and Safety guarantees.
  • Strong Consistency: Ensures that all committed data is consistent across the cluster.
  • Fault Tolerance: The system remains operational as long as a quorum (majority) of nodes are available.
  • Async I/O: Built on top of Tokio for high-performance non-blocking networking.
  • Persistent Storage: Logs and state are persisted to disk to survive crashes.
  • Simple API: Basic GET, PUT, and DELETE operations.

ARCHITECTURE

Kraft follows the standard Raft architecture:

  1. Leader: Handles all client requests and replicates log entries to followers.
  2. Follower: Passive node that responds to requests from leaders and candidates.
  3. Candidate: A node attempting to become the new leader.

Communication between nodes is handled via gRPC (or TCP/UDP depending on implementation), ensuring efficient serialization of Raft RPCs (RequestVote, AppendEntries).

🚀 Getting Started

Prerequisites

  • Rust (latest stable version)
  • Cargo

Installation

git clone [https://github.com/username/kraft.git](https://github.com/username/kraft.git)
cd kraft
cargo build --release