Analytics and graph processing in one engine, without compromise. Columnar scans, joins, and aggregations at full speed—plus native graph traversal, pattern matching, and shortest paths. Everything built from the ground up.
Pure C17 with zero external dependencies. No package manager, no vendored libraries. One public header file, cmake, and a C compiler. That's it.
Build a pipeline of filter, group, sort, join, and graph traversal operations lazily. Nothing runs until you call .collect(). The optimizer rewrites your pipeline automatically—fusing passes, pushing predicates, eliminating dead branches.
Graph traversal lives next to columnar analytics—same pipeline, same optimizer, no glue layer. Neighbor expansion, BFS, shortest path, and worst-case optimal joins for pattern matching. The optimizer prunes dead-end paths before traversal even begins.
Custom buddy allocator with COW ref counting. Morsel-driven execution processes 1024-element tiles at a time. Thread pool with lock-free dispatch. Every layer designed for columnar workloads.
Five repositories, one engine. From the C core to visual analytics.
The core engine. Columnar analytics and native graph processing in one library. Lazy DAG execution, 6-pass optimizer, CSR edge indices, worst-case optimal joins, factorized execution, and morsel-driven parallel executor. Single public header.
View repoRust bindings with SQL frontend, interactive REPL with syntax highlighting and tab completion, and PostgreSQL wire protocol server. Connect with psql, DBeaver, or any PG client.
Python bindings with lazy evaluation, automatic query optimization, morsel-driven parallel execution across all cores, and zero-copy NumPy interop for numeric columns.
View repoVisual data pipeline editor. Drag-and-drop nodes, SQL and form modes, live data grid and chart preview, PDF report engine with markdown templates, dashboard builder. Backed by Teide.
View repoH2O.ai benchmark suite on 10M-row datasets. Groupby, sort, and join queries across multiple engines. Results below.
View repoH2O.ai benchmarks, 10 million rows. Teide vs DuckDB vs Polars.
| Query | Teide | DuckDB | Polars |
|---|---|---|---|
| q1 — id1, SUM | 2.4ms | 7.6ms | 23.6ms |
| q2 — id1+id2, SUM | 5.7ms | 21.5ms | 125.7ms |
| q3 — id3, SUM+AVG | 18.2ms | 67.7ms | 131.5ms |
| q5 — id6, 3xSUM | 31.5ms | 52.8ms | 85.4ms |
| q7 — 6-key, SUM+COUNT | 84.7ms | 180.5ms | 789.0ms |
| sort s1 — id1 ASC | 101.9ms | 188.1ms | 334.6ms |
| sort s6 — 3-key ASC | 154.9ms | 442.2ms | 797.0ms |
| join j1 — inner, 3-key | 85.2ms | 94.3ms | 223.6ms |
10M rows, H2O.ai datasets. DuckDB 1.4.3 (28 threads), Polars 1.35.2. See teide-bench for full methodology.
Nothing executes until you ask for results. The optimizer handles the rest.
from teide import Context, col
with Context() as ctx:
df = ctx.read_csv("measurements.csv")
# Build pipeline — nothing executes yet
result = (
df.filter(col("region") == "EU")
.group_by("product")
.agg(
col("revenue").sum(),
col("price").mean(),
)
.sort("revenue_sum", descending=True)
.collect()
)
print(result)
No package manager needed. Just cmake and a C compiler.
git clone https://github.com/TeideDB/teide.git
cd teide
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
cd build && ctest --output-on-failure
pip install teide
Or build from source:
git clone https://github.com/TeideDB/teide-py.git
cd teide-py
pip install -e .
git clone https://github.com/TeideDB/teide-rs.git
cd teide-rs
cargo build --all-features
# Interactive REPL
cargo run --features cli
# PostgreSQL server
cargo run --features server -- --port 5433
git clone https://github.com/TeideDB/mirador.git
cd mirador
# Backend
uv sync && uv run uvicorn mirador.app:app --port 8000
# Frontend
cd frontend && npm install && npm run dev
Open localhost:8000 to start building pipelines visually.