Query your files with SQL.
No server. No import. No extensions.
Embedded analytical database in C++20. Built-in readers for CSV, Parquet, JSON, Avro, Excel, Arrow, SQLite. 1.1×–6.6× faster than DuckDB on every benchmark we ran.
$
pip install slothdb
LEVEL 01 — SYSTEM
whoami
# SlothDB --version
terminal~/slothdb
NAME slothdb VERSION 0.1.3 CATEGORY embedded analytical database (OLAP) LANGUAGE C++20 LICENSE MIT BINARY_SIZE 8 MB, self-contained (no Java / Docker / daemon) FORMATS CSV · Parquet · JSON · Avro · Excel · Arrow · SQLite APIS CLI · Python (pip install slothdb) · C/C++ (stable ABI) GPU CUDA (NVIDIA) · Metal (Apple), auto at 100k rows PLATFORMS Linux · macOS · Windows · x86_64 + ARM64 TESTS 326 passing · 131,321 assertions SPEED 1.1×–6.6× faster than DuckDB on 15/15 benchmarks # end-of-profile
LEVEL 02 — INVENTORY
what ships in the binary
Every format, feature, and API — no extension downloads, no "load extension first".
◈ File readers
- CSV · read_csv()
- Parquet · read_parquet()
- JSON / NDJSON
- Excel (.xlsx) · read_xlsx()
- Avro · read_avro()
- Arrow IPC
- SQLite · sqlite_scan()
◈ SQL surface
- 130+ features
- Window functions · QUALIFY
- Recursive CTEs
- MERGE · UPSERT
- Lateral joins
- UNION / INTERSECT / EXCEPT
◈ Engine
- Vectorized columnar (2048 values/batch)
- Morsel-driven parallelism
- Zero-copy VARCHAR via shared buffers
- Fused WHERE + aggregate
- Dict-index GROUP BY fast path
- mmap file I/O
◈ APIs
- CLI with linenoise (arrow keys, history, TAB)
- Python: pandas DataFrame output
- C/C++: stable C ABI
- Structured numeric error codes
◈ Storage
- Single-file .slothdb format
- Atomic checkpoints
- RLE · dictionary · bitpacking
- Zone maps / min-max
◈ Reliability
- 326 passing unit tests
- 131,321 assertions
- Bounds-checked parsing · DoS limits
- UTF-8 identifiers (CJK column names)
LEVEL 03 — BUILT FOR YOUR STACK
ecosystem
SlothDB links native into your platform, language, and data format — no bindings or extensions to install separately.
◆ Platforms
🐧 Linux
🍎 macOS
🪟 Windows
x86_64
ARM64
WebAssembly
◆ Clients / bindings
⌘ CLI shell
🐍 Python
🔤 C
C++
Node.js
Go
R
◆ File formats (native)
CSV
Parquet
JSON / NDJSON
Avro
Excel .xlsx
Arrow IPC
SQLite
◆ Data science
🐼 pandas
📓 Jupyter
NumPy
Polars
Apache Arrow
◆ Storage / I/O
local filesystem
mmap'd reads
.slothdb file
GPU (CUDA)
GPU (Metal)
S3 · GCS · HTTP
◆ SQL surface
130+ features
Window fns
QUALIFY
Recursive CTEs
MERGE / UPSERT
Lateral joins
+ = on the roadmap · current features are green-lit in v0.1.3
LEVEL 04 — TRY IT
run a query right now
Click a query — see what SlothDB would print. To run on your files, install (30s).
slothdb> ▮
↑ these outputs are real numbers from the benchmark. Install to run against your own data.
LEVEL 05 — BENCHMARKS
1M rows · warm cache · 5-run median
Sort by speedup; every bar is SlothDB winning.
15/15won
6.6×biggest
1.04×smallest
5formats
Avro · SUM5.43×
CSV · COUNT(*)5.08×
Avro · GROUP BY4.71×
Parquet · COUNT(*)2.83×
CSV · GROUP BY1.91×
CSV · WHERE + GBY1.81×
CSV · GBY 2-col1.70×
CSV · SUM1.67×
Excel · GROUP BY1.41×
JSON · SUM1.30×
Parquet · WHERE + GBY1.26×
Parquet · GBY 2-col1.18×
Parquet · GROUP BY1.16×
JSON · GROUP BY1.14×
Parquet · SUM1.04×
Parquet SUM at 4% is within run-to-run noise. The Avro gap is wide partly because DuckDB reads Avro through an extension — not apples-to-apples there.
LEVEL 06 — BOSS BATTLE
SlothDB vs {DuckDB, ClickHouse, SQLite}
Honest, side-by-side. If another tool wins for your workload, we say so.
vs DuckDB — same category
| SlothDB | DuckDB | |
|---|---|---|
| 1M-row benchmark | 1.04×–6.6× faster on 15/15 | baseline |
| Built-in file formats | 7 (all in binary) | 3 (Excel/Avro/SQLite need extensions) |
| Extension ABI | Stable C ABI | Internal C++ API, breaks often |
| GPU offload | CUDA + Metal | CPU only |
| Binary size | ~8 MB | ~50 MB |
vs ClickHouse — different category
| SlothDB | ClickHouse | |
|---|---|---|
| Deployment | 8 MB, embedded | server + Keeper + config |
| Cold start | < 10 ms | tens of seconds |
| Ops overhead | none | daemon, ports, upgrades |
| Cluster / distributed | no | yes |
What SlothDB does not do
- No distributed queries · use ClickHouse at scale
- No MVCC transactions · OLTP is a poor fit
- Younger codebase · open issues on GitHub when you find bugs
LEVEL 07 — FINAL BOSS
defeat the install command
You made it this far. The last boss is one line of shell.
★ INSTALL SLOTHDB v0.1.3
Pick your platform. Every method is free, MIT licensed, no signup.
$
pip install slothdb
🐍 PYTHON
pip install slothdb
🐧 LINUX / 🍎 MACOS
curl -fsSL .../install.sh | bash
🪟 WINDOWS
📦 DEBIAN / UBUNTU
dpkg -i slothdb_0.1.3_amd64.deb