A read-only SQL query engine over CSV files, built from scratch in pure Python with zero third-party dependencies — a tiny, single-node DuckDB. Architecture — a four-stage pipeline, each a decoupled module: tokenizer + recursive-descent parser → logical plan of relational operators → optimizer → Volcano-style (iterator) streaming executor. Highlights: • Relational optimizations (filter & projection pushdown) that cut the rows each operator processes. • Correctness via differential testing: optimized vs. unoptimized oracle, and hash-join vs. nested-loop-join oracle. • 1000-row type inference and full SQL NULL semantics. • In-browser playground that runs the real engine via WebAssembly (Pyodide), visualizing every stage: tokens → AST → plan → rows. Stack: Python, WebAssembly (Pyodide), Docker. Code: https://github.com/deepansh2908/sprout