# Build a Typed Database Expression Engine in Rust

A hands-on Rust course that builds a small, type-safe, auto-vectorized database expression engine across five modules and ten cumulative, independently testable checkpoints.

This course teaches advanced Rust by building a type-safe, auto-vectorized database expression engine. It works through the type families and checked boundaries a real expression engine needs: borrowing strings without copying, preserving nulls, reading several column representations, coercing types, and selecting functions at runtime, so that authors write one scalar operation while generic unary, binary and ternary adapters reuse a checked batch path.

Its five modules move from physical values to the engine's outer async boundary: type families and nullable views; shared evaluation and transactional strings; shape specialization and binary semantics; runtime erasure and a physical catalog; and logical binding, one-level lists and batch async. Each of its ten checkpoints extends the same starter project and keeps earlier tests passing, with roughly half a day of work expected per checkpoint.

It assumes familiarity with ordinary Cargo use, enums, traits, references and Option, and deliberately stops short of decimal arithmetic, casts, an aggregate engine and per-row futures.

Website: https://skyzh.github.io/type-exercise-in-rust/
