Repolode
opengeos

opengeos/terrio

Pure-Rust library and CLI for reading, writing and converting raster, vector and point cloud geospatial data without C dependencies.

Open-source alternative to:GDAL

Stars
128
Forks
12
Open issues
1
Last commit
2 hours ago

What is it?

terrio is a geospatial data I/O toolkit written in pure Rust. It reads, writes and converts common raster, vector and point cloud formats, including GeoTIFF and Cloud Optimized GeoTIFF, GeoPackage, Shapefile, FlatGeobuf, LAS/LAZ/COPC and Zarr. It also covers reprojection between coordinate reference systems, and a set of GDAL-style operations such as translate, warp, mosaic, rasterize and DEM tools.

The project is aimed at workflows that need GDAL-like behavior without C dependencies, so it can build anywhere Rust builds, including WebAssembly. It exposes the same functionality as a command-line tool, a Rust library, Python bindings (NumPy, Arrow, rasterio- and xarray-style APIs) and an npm package for browsers and Node.js. Remote and archived inputs such as HTTP, S3, GCS, Azure and zip files can be read in place.

The project is in early development: reading, writing and conversion work, while processing operations are still being built out. Coordinate transformations are tested against GDAL and PROJ.

Key features

  • 01Reads and writes GeoTIFF, COG, GeoPackage, Shapefile, FlatGeobuf and other raster and vector formats.
  • 02Reads and writes point clouds in LAS, LAZ and COPC, with EPT and E57 support.
  • 03Reprojects data between EPSG and custom coordinate reference systems.
  • 04Reads remote and archived data in place from HTTP, S3, GCS, Azure and zip files.
  • 05Provides GDAL-style commands for translate, warp, mosaic, rasterize and DEM processing.
  • 06Builds without C dependencies, including to WebAssembly, with optional cargo features per format.

Use cases

  • Converting vector or raster datasets between formats in a script or CI pipeline without installing GDAL.
  • Reading Cloud Optimized GeoTIFFs over HTTP or object storage, fetching only the tiles a window needs.
  • Processing geospatial data in a browser or Node.js with the WebAssembly package.
  • Filtering and gridding lidar point clouds into DEMs.

Quick start

  1. 1

    Install the terrio package from PyPI

    pip install terrio
  2. 2

    Summarize a dataset with the command line

    terrio info countries.gpkg

Things to know

  • The project is in early development, and processing operations are still in progress.

Topics

FAQ

What is terrio?
Pure-Rust library and CLI for reading, writing and converting raster, vector and point cloud geospatial data without C dependencies. terrio is a geospatial data I/O toolkit written in pure Rust. It reads, writes and converts common raster, vector and point cloud formats, including GeoTIFF and Cloud Optimized GeoTIFF, GeoPackage, Shapefile, FlatGeobuf, LAS/LAZ/COPC and Zarr. It also covers reprojection between coordinate reference systems, and a set of GDAL-style operations such as translate, warp, mosaic, rasterize and DEM tools.
Is terrio free to use? What license does it have?
terrio is open source under the MIT license. Check the license terms before using it in commercial products.
Is terrio still maintained?
Actively maintained. The last commit to terrio was on Oct 22, 2026.
What can I use terrio for?
Converting vector or raster datasets between formats in a script or CI pipeline without installing GDAL. Reading Cloud Optimized GeoTIFFs over HTTP or object storage, fetching only the tiles a window needs. Processing geospatial data in a browser or Node.js with the WebAssembly package. Filtering and gridding lidar point clouds into DEMs.
How do I install terrio?
Install the terrio package from PyPI: pip install terrio Summarize a dataset with the command line: terrio info countries.gpkg
Where can I get terrio?
The source code and installation instructions are on GitHub: https://github.com/opengeos/terrio

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects