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.

CollectionBlocksLanguagePurpose
base15RustCore tabular data processing, map/reduce primitives
data18RustData import from remote storage and public datasets
gdal48PythonRaster and vector operations wrapping the GDAL library
platform9GoPull user-uploaded assets into a pipeline
fiadb6TypeScriptDesign-based FIA population estimates from the USFS FIADB-API
stats8RDescriptive statistics, hypothesis tests and regression models over tabular data
duckdb2PythonSQL over pipeline tables, without network
viz14PythonCharts, maps and reports, deterministic and offline
ai3PythonAgents that write SQL, chart specs and reports with your model key
models3RustScore fitted models; streaming linear and generalised linear models
ml3PythonRandom 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/ml

After 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 →