A tiny educational OLAP engine built in ~700 lines of Rust. It accompanies a six-chapter tutorial on how a real columnar engine like DuckDB is put together.
| Chapter | Module | Idea |
|---|---|---|
| 1 | src/storage.rs |
Columnar batches over arrow2 |
| 2 | src/exec.rs |
Pull-based Volcano operators |
| 3 | src/expr.rs |
Scalar expression trees |
| 4 | src/agg.rs |
Hash aggregation with hashbrown + ahash |
| 5 | src/catalog.rs + src/planner.rs |
Catalog + tiny SQL planner |
| 6 | benches/ |
Synthetic micro-benchmark |
cargo run --example ch1_table
cargo run --example ch2_scan
cargo run --example ch3_filter
cargo run --example ch4_agg
cargo run --example ch5_sqlcargo testcargo bench --bench tpch_liteA like-for-like comparison against duckdb
is described in chapter 6 of the tutorial, but the dependency is intentionally
omitted from Cargo.toml so that this teaching crate stays light.