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 builder::CompressionType;
pub use builder::CreateOptions;
pub use builder::DatasetCreateBuilder;
pub use builder::DatasetOpenBuilder;
pub use builder::DatasetWriter;
pub use builder::OutputFormat;
pub use open::CloudScheme;
pub use open::OpenedDataset;
pub use open::open;
pub use streaming::FeatureStream;
pub use streaming::RasterTile;
pub use streaming::StreamingExt;
pub use streaming::StreamingFeature;
pub use streaming::TileStream;
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

Modules§

builder
Builder patterns for dataset creation and opening. Builder patterns for ergonomic dataset creation and opening.
convert
Format conversion planning and detection utilities. Format conversion planning and detection utilities.
open
Universal dataset opener with automatic format detection. Universal dataset opener with automatic format detection.
streaming
Streaming / iterator API for large datasets. Streaming / iterator APIs for large geospatial datasets.

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