Skip to content

rubberduck docs

Scales to zero · 25× faster groupbys · stay on Cloudflare

Numbers

Re-run: pnpm bakeoff, hit the live API. Not a formal ClickBench submission.

DuckDB vs SQLite (≈ D1 engine)

1M ClickBench-shaped rows, same SQL, in-process.

querysqliteduckdbspeedup
count2.2ms0.5ms
GROUP BY OSName244ms10ms25×
region avg + limit235ms2.4ms98×
filter + groupby156ms7ms23×

If your workload is mostly count(*), D1 may be enough. If it is aggs and groupbys on Parquet, the bake-off numbers speak for themselves.

Live Cloudflare

https://rubberduck.b-christopher-3rd.workers.dev · Bearer demo-token

checkresult
count(*) lineitem600,572
count(*) hits1,000,000
warm lineitem count p50 wall~174ms
warm OS groupby p50 wall~172ms
client p50 (same)~500–800ms

Cost sketch

Demo footprint sits near the $5/mo Workers Paid floor. R2 for ~27 MB of samples is free-tier noise.

D1 gets expensive when full scans burn rows-read. At 1M rows/groupby, the Paid 25B rows/mo allotment is roughly 25k such queries before overage dominates. Workers meter CPU ms instead. That swap is the economic argument for lake + DuckDB on this shape of traffic.

MotherDuck Lite is the fair free competitor. Business ($250) buys managed product. ClickHouse leads on warm huge scans and ingest. rubberduck leads when tenants are mostly idle and you want lake + scale-to-zero on Cloudflare.

Scales to zero. 25× faster than D1 on groupbys. No need to go to another provider.