• Stars
    star
    342
  • Rank 123,697 (Top 3 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 10 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Rust bindings for GDAL

GDAL

Documentation Build Status

GDAL is a translator and processing library for various raster and vector geospatial data formats.

This crate provides safe, idiomatic Rust bindings for GDAL.

Capabilities

GDAL is an incredibly powerful library. For a general understanding of its capabilities, a good place to get started is the GDAL User-oriented documentation. These features include:

  • Opening raster and vector file formats for reading/writing
  • Translating between file formats
  • Reading and writing metadata in raster and vector datasets
  • Accessing raster bands and their metadata
  • Reading and writing geospatial coordinate system and projection values
  • Warping (resampling and re-projecting) between coordinate systems

Documentation

This crate's API documentation is hosted on docs.rs.

The Rust documentation is currently a work in progress, and may not cover requisite details on parameter semantics, value interpretation, etc. Therefore, the authoritative documentation is that of GDAL in the form of its C and C++ APIs. The former is technically what this crate calls, but the latter is usually more clear and better documented.

Usage

This crate provides high-level, idiomatic Rust bindings for GDAL. To do that, it uses gdal-sys internally, a low-level interface to the GDAL C library, which is generated using bindgen. Using the gdal-sys crate directly is normally not needed, but it can be useful in order to call APIs that have not yet been exposed in gdal.

Version support

As a general rule, only GDAL versions in Ubuntu LTS-1 (previous LTS version, that is, GDAL 3.0 in 20.04 at this moment) are supported. gdal-sys might support earlier versions using the bindgen feature flag, but gdal does not.

Building this crate assumes a compatible version of GDAL is installed with the corresponding header files and shared libraries. This repository includes pre-generated bindings for GDAL 3.0 through 3.8 (see thegdal-sys/prebuilt-bindings directory). If you're compiling against another version of GDAL, you can enable the bindgen feature flag to have the bindings generated on the fly.

Community

This crate is part of the expansive (and expanding!) georust organization. Come join our discussions on Discord!

Contributing

This crate continues to evolve, and PRs are always welcome. Make sure you are comfortable with the Code of Conduct and License before submitting a PR.

License

This library is released under the MIT license

More Repositories

1

geo

Geospatial primitives and algorithms for Rust
Rust
1,247
star
2

rstar

R*-tree spatial index for the Rust ecosystem
Rust
384
star
3

geozero

Zero-Copy reading and writing of geospatial data.
Rust
355
star
4

geojson

Library for serializing the GeoJSON vector GIS file format
Rust
222
star
5

proj

Rust bindings for the latest stable release of PROJ
Rust
131
star
6

geos

Rust bindings for GEOS
Rust
87
star
7

gpx

Rust read/write support for GPS Exchange Format (GPX)
Rust
84
star
8

geohash

Geohash for Rust
Rust
84
star
9

netcdf

High-level netCDF bindings for Rust
Rust
81
star
10

rinex

RINEX and GNSS data processing 🛰️
Rust
80
star
11

geotiff

Reading GeoTIFFs in Rust, nothing else!
Rust
69
star
12

geocoding

Geocoding library for Rust.
Rust
63
star
13

robust

Robust predicates for computational geometry
Rust
51
star
14

wkt

Rust read/write support for well-known text (WKT)
Rust
43
star
15

geographiclib-rs

A port of geographiclib in Rust.
Rust
41
star
16

kml

Rust support for KML
Rust
27
star
17

polyline

Google Encoded Polyline encoding & decoding in Rust.
Rust
17
star
18

osm

OSM XML serialization and other OpenStreetMap utilities
Rust
16
star
19

transitfeed

Public transit serializer/deserializer and manipulation library for Rust
Rust
16
star
20

ogcapi

OGC API building blocks implemented in Rust
Rust
14
star
21

topojson

TopoJSON bindings and utilities for Rust
Rust
10
star
22

world-file

Rust read/write support for world files
Rust
7
star
23

shapefile

Rust read/write support for shapefiles
HTML
7
star
24

tilejson

Library for serializing the TileJSON file format
Rust
6
star
25

geos-sys

FFI bindings for libgeos
C++
5
star
26

geo-svg

A rust library to generate SVGs for geo-types
Rust
5
star
27

georust.org

georust.org
3
star
28

meta

The GeoRust Team repository for coordinating and discussing GeoRust projects
Shell
1
star
29

docker-images

Docker images used in the GeoRust ecosystem
Makefile
1
star