# API

## Full Doxygen output

## C API

- Common Portability Library C API
- 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
- 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 bindings
- osgeo package
- Python Gotchas in the GDAL and OGR Python Bindings
- Python 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
> > - Lua
> > - Original Node.js bindings
> > - Node.js fork with full Promise-based async and TypeScript support
> > - Perl
> > - PHP
> > - R
> > - Rust

> Warning

> For Perl, since GDAL 3.5 the link Perl is deprecated, use above link instead.

> 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