Skip to main content

Crate oxigdal

Crate oxigdal 

Source
Expand description

§OxiGDAL — Pure Rust Geospatial Data Abstraction Library

OxiGDAL is the Rust-native alternative to GDAL, providing a comprehensive geospatial data abstraction layer with zero C/Fortran dependencies. 100% Pure Rust.

§Quick Start

[dependencies]
oxigdal = "0.1"  # includes GeoTIFF, GeoJSON, Shapefile by default
use oxigdal::Dataset;

let drivers = oxigdal::drivers();
println!("Enabled drivers: {:?}", drivers);
println!("OxiGDAL version: {}", oxigdal::version());

§Feature Flags

FeatureDefaultDescription
geotiffGeoTIFF raster format (COG support)
geojsonGeoJSON vector format
shapefileESRI Shapefile
geoparquetGeoParquet (Apache Arrow columnar)
netcdfNetCDF scientific data format
hdf5HDF5 hierarchical data format
zarrZarr cloud-native arrays
gribGRIB meteorological data format
stacSpatioTemporal Asset Catalog
terrainTerrain/elevation data
vrtVirtual Raster Tiles
flatgeobufFlatGeobuf vector format
jpeg2000JPEG2000 raster format
fullAll formats above
cloudCloud storage (S3, GCS, Azure)
projCRS transformations (Pure Rust proj)
algorithmsRaster/vector algorithms
analyticsGeospatial analytics
streamingStream processing
mlMachine learning integration
gpuGPU-accelerated processing
serverOGC-compliant tile server
temporalTemporal/time-series analysis

§GDAL Compatibility

OxiGDAL aims to provide familiar concepts for GDAL users:

GDAL (C/C++)OxiGDAL (Rust)
GDALOpen()Dataset::open()
GDALGetRasterBand()dataset.raster_band(n)
GDALGetGeoTransform()Dataset::geotransform()
GDALGetProjectionRef()Dataset::crs()
GDALAllRegister()drivers()
GDALVersionInfo()version()
GDALWarp()oxigdal::algorithms::warp() (feature algorithms)
ogr2ogroxigdal-cli convert (crate oxigdal-cli)

§Architecture

┌──────────────────────────────────────────────────┐
│  oxigdal (this crate) — Unified API              │
│  Dataset::open() → auto-detect format            │
├──────────────────────────────────────────────────┤
│  Drivers (feature-gated)                         │
│  ┌──────────┐ ┌──────────┐ ┌─────────────┐      │
│  │ GeoTIFF  │ │ GeoJSON  │ │  Shapefile  │ ...  │
│  └──────────┘ └──────────┘ └─────────────┘      │
├──────────────────────────────────────────────────┤
│  oxigdal-core — Types, Buffers, Error, I/O       │
└──────────────────────────────────────────────────┘

§Crate Ecosystem

OxiGDAL is a workspace of 65+ crates. This oxigdal crate serves as the unified entry point. Individual crates can also be used directly:

# Use the unified API (recommended for most users)
oxigdal = { version = "0.1", features = ["full", "cloud", "proj"] }

# Or pick individual crates for minimal dependencies
oxigdal-core = "0.1"
oxigdal-geotiff = "0.1"

§Pure Rust — No C/Fortran Dependencies

Unlike the original GDAL which requires C/C++ compilation and system libraries (PROJ, GEOS, etc.), OxiGDAL is 100% Pure Rust:

  • No bindgen, no cc, no cmake
  • Cross-compiles to WASM, embedded, mobile
  • cargo add oxigdal — that’s it

Part of the COOLJAPAN ecosystem.

Re-exports§

pub use oxigdal_core as core_types;
pub use oxigdal_geotiff as geotiff;geotiff
pub use oxigdal_geojson as geojson;geojson
pub use oxigdal_shapefile as shapefile;shapefile

Structs§

BoundingBox
A 2D bounding box in any coordinate system
Dataset
Unified dataset handle — the central abstraction (analogous to GDALDataset).
DatasetInfo
Basic dataset metadata — analogous to GDALDataset info.
GeoTransform
An affine transformation matrix for converting between pixel and world coordinates
RasterMetadata
Raster metadata

Enums§

DatasetFormat
Detected format of a geospatial dataset.
OxiGdalError
The main error type for OxiGDAL
RasterDataType
Raster data types representing pixel values

Functions§

driver_count
Number of registered (enabled) format drivers.
drivers
List all enabled format drivers.
version
OxiGDAL version string.

Type Aliases§

Result
The main result type for OxiGDAL operations