diff --git a/README.md b/README.md index a855ea3..2eba142 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,29 @@ -# sqlite-c - -A small SQLite inspired relational database engine built from scratch in C11. - -The project focuses on the storage mechanisms behind a database rather than reproducing SQLite's full feature set. It includes persistent storage built around fixed size pages, B tree table storage, a small SQL parser, an interactive shell, automated tests, a benchmark, and sanitizer coverage. - -The database file format is intentionally project specific and is not compatible with SQLite database files. +

+ sqlite-c: Small. Simple. Powerful. A compact relational database engine in C11. +

+ +

MugdhoAI / sqlite-c

+ +

+ CI + Release v0.1.0 + MIT License + C11 +

+ +**sqlite-c** is a learning project that implements a minimal relational database engine in C11. It follows SQLite's design ideas while keeping the storage engine small enough to study: fixed size pages, B-tree indexing, SQL parsing, and persistence. + +This project uses its own database file format. It is **not compatible with SQLite database files** and is not intended to replace SQLite. + + + + + + + + + +
SQL Support
INSERT, SELECT, WHERE
B-Trees
Ordered storage and lookup
Page Storage
4096-byte pages and pager
Built-in Tests
Parser, pager, persistence
Simple API
Small C interface
## Why this project exists diff --git a/docs/images/sqlite-c-hero.svg b/docs/images/sqlite-c-hero.svg new file mode 100644 index 0000000..8cc9b48 --- /dev/null +++ b/docs/images/sqlite-c-hero.svg @@ -0,0 +1,50 @@ + + sqlite-c: Small. Simple. Powerful. + A dark blue technical banner featuring a database-engine mascot, B-tree structure, page storage, and example SQL commands. + + + + + + + + + + + + + + PAGE 00 / ROOT NODE0x534C4954452D43PAGER_FLUSH()BTREE_INSERT(key, row) + + + A SQLITE INSPIRED DATABASE ENGINE + sqlite-c + Small. Simple. Powerful. + A compact relational database engine in C11. + Learn storage, indexing, SQL parsing and persistence. + C • B-TREES • PAGER • SQL PARSER • TESTS + + + + + + + + + + + sqlite-c + + + + + sqlite-c> INSERT INTO userssqlite-c> SELECT * FROM users;sqlite-c> WHERE id = 2; + + + + B+ TREELEAFLEAFLEAF + + PAGE 0 · METADATAPAGE 1 · ROOTPAGE N · LEAF + + Build · Understand · Improve + \ No newline at end of file