Projects

AeroDB

A lightweight embedded relational database engine written in Rust. Single-file storage with B-tree architecture for fast, portable SQL workloads. Everything — tables, indexes, metadata — lives in one file. Built entirely with test-driven development over 123 commits.

Architecture

1
CLI LayerInteractive SQL session — parse, execute, display results
2
SQL ParserTokenizes and parses SQL statements into an internal AST
3
Query ExecutorPlans execution, resolves indexes, runs against storage
4
Storage EngineB-tree with O(log n) read/write, primary and secondary indexes
5
File I/OPage-based single-file persistence, all data in one portable file

SQL Support

DDL
  • CREATE TABLE
  • CREATE INDEX
  • DROP TABLE
  • DROP INDEX
DML
  • SELECT
  • INSERT
  • UPDATE
  • DELETE
Clauses
  • WHERE
  • GROUP BY
  • ORDER BY
  • JOIN

Storage Engine

B-tree indexing — All data access goes through a B-tree that supports both primary key lookups and secondary index scans. Reads and writes are O(log n), keeping performance predictable as tables grow.

Single-file design — Inspired by SQLite, the entire database (tables, indexes, metadata) lives in one file. No server process, no configuration. Open the file and query.

ACID transactions — Statements execute in implicit transactions by default. Explicit BEGIN...COMMIT blocks group multiple operations with full atomicity, consistency, isolation, and durability.

In Progress

  • Concurrency control — locking or MVCC for concurrent access
  • Storage engine internals documentation and architecture articles
  • Tutorial series on B-tree implementation and SQL parsing in Rust