Repository navigation
sqlite-c v0.1.0
Pre-releaseOverview
Initial release of sqlite-c, a small SQLite inspired relational database engine built from scratch in C11.
Features
- Persistent storage using fixed size 4096 byte pages
- B tree table storage with leaf splitting and an internal root
- SQL
INSERTandSELECT, includingWHERE id = ... - Interactive command line shell
- Database metadata and B tree structure validation on open
- Automated tests, strict compiler warnings, and AddressSanitizer and UndefinedBehaviorSanitizer checks
- A 1,000 row insertion benchmark
Build and run
Requirements: a C11 compatible compiler and GNU Make.
make
./build/sqlite-cRun the test suite with make test and the benchmark with make benchmark.
Scope and limitations
This is an educational database engine, not a production database or a drop in replacement for SQLite. Its database file format is project specific and is not compatible with SQLite database files. The SQL grammar and storage capacity are limited, and deeper B tree internal node splitting is not implemented.
See the README for architecture, supported commands, testing details, and known limitations.
Verification
The main commit targeted by this release passed the repository's configured GitHub Actions checks, including tests, strict warning compilation, the benchmark smoke test, AddressSanitizer, and UndefinedBehaviorSanitizer.