Skip to content

Architecture

roastedDuck is an in-process analytical database. SQL is parsed and bound into a logical plan, optimized, and executed through vectorized operators. Storage, buffer management, transactions, and codecs sit beneath that execution layer.

SQL / Python / Go / Swift / C API / ADBC
                    │
             parser and binder
                    │
          logical plan and optimizer
                    │
         vectorized execution pipelines
                    │
      catalog · transactions · storage
                    │
        buffers · codecs · file access
Area Source
Values, vectors, errors crates/types, crates/common
SQL syntax and planning crates/ast, crates/parser, crates/planner
Optimization and execution crates/optimizer, crates/execution, crates/row
Database API and catalog crates/roastedduck, crates/catalog
Persistence and memory crates/storage, crates/buffer
File formats and extensions crates/parquet, crates/csv, crates/json, crates/httpfs
Clients and shell crates/capi, crates/python, crates/shell
Differential testing tools/slt, scripts/, conformance/

The engine is implemented in Rust. Native cryptography dependencies are allowed; this is not a claim that the complete dependency graph is Rust or free of unsafe code. The upstream C++ engine is used as a reference for testing, not as the runtime engine in the release payload.

The public CLI package is roastedduck-cli, producing roastedDuck. Rust engine crates and modules use roastedduck-* and roastedduck_*; release versions match the targeted DuckDB compatibility version.

Read the detailed engineering conventions before changing operator, memory-accounting, or persistence behavior.