// the find
OSGeo/gdal
GDAL is an open source MIT licensed translator library for raster and vector geospatial data formats.
GDAL is the standard library for reading and writing geospatial raster and vector formats — GeoTIFF, Shapefile, GeoPackage, NetCDF, and roughly 200 others. If you're doing anything with satellite imagery, GIS data pipelines, or coordinate system transformations, you're almost certainly already using it indirectly through QGIS, PostGIS, or rasterio. This is the upstream.
Format coverage is unmatched — 200+ drivers means you rarely hit a format that isn't supported. The new unified `gdal` CLI (visible in `apps/gdalalg_*.cpp`) is a significant improvement over the old fragmented tool collection, adding pipeline composition and consistent argument handling. CI is thorough: ASAN, fuzzing via OSS-Fuzz, Coverity static analysis, CodeQL, and builds across Alpine, ARM, s390x, Android, and Windows all run on every PR. The C API is stable enough that bindings in Python, Java, and .NET have tracked it for decades without major breakage.
The C++ internals are genuinely old in places — the driver model predates modern C++ idioms and vendored dependencies like libqhull sit in-tree rather than being managed externally, which complicates security patching. Build complexity is real: CMake has tamed it somewhat but getting a full-featured build with all optional drivers (HDF5, NetCDF, ECW, MrSID) still requires careful dependency management that catches newcomers off guard. The Python bindings (`gdal.UseExceptions()` must be called manually or errors silently return None) have rough edges that have bitten people for years. Memory management in the C API is manual and inconsistent — some objects you own, some you don't, and the docs don't always say which.