Block Catalog
Spade ships with several built-in block collections that cover most common data-processing needs. Each collection is a self-contained bundle of blocks you can install with spade install and reference from your pipelines.
| Collection | Blocks | Language | Purpose |
|---|---|---|---|
base | 15 | Rust | Core tabular data processing, map/reduce primitives |
data | 18 | Rust | Data import from remote storage and public datasets |
gdal | 48 | Python | Raster and vector operations wrapping the GDAL library |
platform | 9 | Go | Pull user-uploaded assets into a pipeline |
fiadb | 6 | TypeScript | Design-based FIA population estimates from the USFS FIADB-API |
stats | 8 | R | Descriptive statistics, hypothesis tests and regression models over tabular data |
duckdb | 2 | Python | SQL over pipeline tables, without network |
viz | 14 | Python | Charts, maps and reports, deterministic and offline |
ai | 3 | Python | Agents that write SQL, chart specs and reports with your model key |
models | 3 | Rust | Score fitted models; streaming linear and generalised linear models |
ml | 3 | Python | Random forests and gradient boosting, exported as portable ONNX models |
Block naming🔗
Every block is identified by <collection>.<name>, for example base.filter_rows or gdal.warp. When you reference a block in a pipeline, you use this fully-qualified name.
Finding blocks🔗
Use the search box at the top of this site to find a specific block. Each block has its own page documenting its inputs, outputs, and usage.
Block kinds🔗
Blocks come in three kinds that reflect their role in a pipeline:
standard— a single invocation that consumes inputs and produces outputs.map— a fan-out block that emits an expansion manifest so downstream blocks run once per item.reduce— a fan-in block that consumes a collection produced by mapped blocks and emits a single consolidated output.
See Core Concepts: Map/Reduce for a full explanation of this pattern.
Installing the built-in collections🔗
Each collection is installed from its source directory or git URL:
spade install file:///path/to/blocks/base
spade install file:///path/to/blocks/data
spade install file:///path/to/blocks/gdal
spade install file:///path/to/blocks/platform
spade install file:///path/to/blocks/fiadb
spade install file:///path/to/blocks/stats
spade install file:///path/to/blocks/models
spade install file:///path/to/blocks/mlAfter installation, blocks are registered in ~/.spade/registry.db and can be referenced by any pipeline.
base
Core tabular data processing, map, and reduce blocks. Implemented in Rust.
Explore →data
Data import blocks for remote storage backends and public datasets. Implemented in Rust.
Explore →gdal
Raster and vector operations wrapping the GDAL/OGR command-line utilities. Implemented in Python.
Explore →platform
First-party, platform-privileged blocks: pulling user-uploaded assets into a pipeline, and rewriting VRTs to object references. Implemented in Go.
Explore →fiadb
Design-based FIA population estimates from the USFS FIADB-API / EVALIDator service. Implemented in TypeScript (Bun).
Explore →sae
Fay-Herriot small-area estimation (EBLUP) with predictor selection. Implemented in R.
Explore →stats
Common statistical operations - descriptive statistics, hypothesis tests and regression models. Implemented in R.
Explore →duckdb
Run SQL over pipeline tables with DuckDB, without network: hand-written queries, uploaded scripts, or queries written by ai.sql.
Explore →viz
Charts from tables, maps from rasters and vectors, and reports -- deterministic, with no network.
Explore →ai
Agents that turn a description into SQL, a chart spec or a report, for a deterministic block to run. Bring your own model key.
Explore →models
Scoring fitted models on tables of any size, and streaming linear and generalised linear models. Implemented in Rust.
Explore →ml
Machine-learning models - random forests and gradient boosting - exported as portable ONNX models. Implemented in Python.
Explore →