finds.dev← search

// the find

jblindsay/whitebox-tools

★ 1,159 · Rust · MIT · updated May 2026

An advanced geospatial data analysis platform

WhiteboxTools is a command-line geospatial analysis toolkit written in Rust, covering terrain analysis, hydrology, LiDAR processing, and raster/vector GIS operations. It's designed as an analytical backend — you call it from Python, QGIS, or ArcGIS rather than using it standalone. The target audience is academic researchers and GIS professionals who need scriptable, high-performance terrain and hydrological analysis without ESRI licensing costs.

The breadth of hydrological and terrain tools is genuinely impressive — flow accumulation, watershed delineation, depression analysis, and LiDAR ground classification are all there and implemented properly, not as thin wrappers. Being pure Rust means the performance on large DEMs is real, not theoretical. The plugin architecture (each tool lives in its own directory with a JSON descriptor) makes it easy to understand what each tool does and add new ones without touching the core. The Python scripting API is a practical design choice — keeps the Rust clean while giving users the glue language they actually want.

The repo is explicitly marked legacy — development has moved to whitebox_next_gen, so you're looking at a dead branch if you adopt this today. The raster format support is wide (GeoTIFF, SAGA, GRASS, Surfer, ESRI BIL) but there's no mention of cloud-optimized GeoTIFF or streaming large files, which matters the moment your DEMs exceed available RAM. The plugin system uses separate Cargo workspaces per plugin rather than a unified crate, which makes incremental builds slower than they need to be and the repo messy. Error handling looked shallow in a quick scan — the kind of place where bad input produces a panic rather than a useful message.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →