Skip to content

Commit 284eae6

Browse files
committed
Add README.md with project description, features, and directory structure
1 parent ccf6a05 commit 284eae6

1 file changed

Lines changed: 33 additions & 0 deletions

File tree

README.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# cache0
2+
3+
![Build Status](https://github.com/algotyrnt/cache0/actions/workflows/run_tests.yml/badge.svg)
4+
![Language](https://img.shields.io/badge/language-C++17-blue.svg)
5+
![License](https://img.shields.io/badge/license-MIT-green.svg)
6+
7+
**cache0** is a lightweight, persistent Key-Value store built from scratch in C++. It is designed to demonstrate core systems programming concepts including memory management, file persistence (RAII), and the Standard Template Library (STL).
8+
9+
## Features
10+
11+
- **In-Memory Speed:** Uses `std::unordered_map` for $O(1)$ average time complexity on lookups.
12+
- **Persistence:** Automatically saves data to disk on exit and loads on startup (RAII pattern).
13+
- **Safety:** Utilizes `std::optional` to handle missing keys gracefully.
14+
- **Modern C++:** Written in C++17.
15+
16+
## Getting Started
17+
18+
### Prerequisites
19+
- A C++ compiler supporting C++17 (GCC, Clang, or MSVC).
20+
21+
### Directory Structure
22+
```text
23+
Cache0/
24+
├── include/
25+
│ └── cache0.hpp # The Product (Header-Only Library)
26+
├── src/
27+
│ └── main.cpp # The Example/Demo file
28+
├── tests/
29+
│ └──test_cache0.cpp # Unit Tests
30+
├── .gitignore # The ignore file
31+
├── .github/ # The CI workflow
32+
└── README.md # Readme File
33+
```

0 commit comments

Comments
 (0)