# API

## Full Doxygen output

## C API

- Common Portability Library C API
- gdal_fwd.h: Forward definitions of GDAL/OGR/OSR C handle types.
- gdal.h: Raster C API
- ogr_core.h and ogr_api.h: Vector C API
- gdal_alg.h: GDAL Algorithms C API
- ogr_srs_api.h: Spatial Reference System C API
- gdal_utils.h: GDAL Algorithms C API

## C++ API

### Raster API

- GDALDriver C++ API
- GDALDataset C++ API
- GDALRasterBand C++ API
- Warper C++ API

### Vector API

- OGRFeature C++ API
- OGRFeature Style C++ API
- OGRGeometry C++ API
- OGRGeomCoordinatePrecision C++ API
- OGRLayer C++ API

### Spatial reference system API

- Spatial Reference System C++ API

### Multi-dimensional array API

- GDALGroup C++ API
- GDALDimension C++ API
- GDALAbstractMDArray C++ API
- GDALMDArray C++ API
- GDALAttribute C++ API
- GDALExtendedDataType C++ API

### Miscellaneous C++ API

- Common Portability Library C++ API
- Geographic Network C++ API

## Python API

- Python API
  - General information
  - Examples
  - Submodules
  - Raster API
  - Vector API
  - Spatial Reference System API
  - Multi-dimensional array API
  - Utilities API
  - General API
  - Gotchas in the GDAL and OGR Python Bindings
  - Sample scripts

## Java API

## GDAL/OGR In Other Languages

There is a set of generic SWIG interface files in the GDAL source tree (subdirectory swig) and a set of language bindings based on those. Currently active ones are:

- C# bindings
- Java bindings

There are also other bindings that are developed outside of the GDAL source tree (note: those offer APIs not strictly coupled to the GDAL/OGR C/C++ API). These include bindings for

> > - Go
> > - Julia
> > - Original Node.js bindings
> > - Node.js fork with full Promise-based async and TypeScript support
> > - Perl
> > - PHP
> > - R
> > - Ruby
> > - Rust

> There are also more Pythonic ways of using the vector/OGR functions with

> > - Fiona
> > - Rasterio

> There is a more idiomatic Golang way of using the raster functions with

> > - Godal