This project is a high-performance Key-Value Store implementation, developed in C/C++.
VoidKV is an educational project designed to explore the fundamentals of distributed systems and in-memory databases. The primary goal is to build a fully functional Redis clone from the ground up, focusing on two core pillars:
-
Network Programming: Implementing TCP sockets, request-response protocols, and concurrent I/O models (Event Loops).
-
Data Structures: Implementing progressive hash tables, balanced binary trees (AVL) for Sorted Sets, and heaps for TTL (Time-to-Live) management.
Rather than relying on off-the-shelf libraries, this project takes a deep dive into low-level C and performance optimization.
To build and run this project, you will need:
-
A Linux environment (Native, VM, or WSL).
-
g++compiler (C++11 support or higher). -
makefor build automation.
- Clone the repository:
git clone https://github.com/ocartaxo/voidkv.git
cd voidkv- Build the project using the Makefile
make
Once the build is complete, you will see two main binaries: server and client.
- Start the server
./server
- In a separate terminal, run the client to send commands
./client
The following milestones track the project's progress, organized by book chapters. Each link points to the branch where the specific feature was implemented:
- Chapter 3
- Chapter 4
- Chapter 5
- Chapter 6
- Chapter 7
- Chapter 8
- Chapter 9
- Chapter 10
- Chapter 11
- Chapter 12
- Chapter 13
- Chapter 14
Note: Chapters 1 and 2 are omitted as they cover introductory concepts and theoretical background without specific code implementations.
This project was built following the concepts detailed in the book Build Your Own Redis. You can find more hands-on engeneering projects like this over at build-your-own.org.
This project is licensed under the MIT License - see the license file for details.