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 cloud_detect::is_cloud_uri;
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
pub use oxigdal_geoparquet as geoparquet;geoparquet
pub use oxigdal_netcdf as netcdf;netcdf
pub use oxigdal_hdf5 as hdf5;hdf5
pub use oxigdal_zarr as zarr;zarr
pub use oxigdal_grib as grib;grib
pub use oxigdal_stac as stac;stac
pub use oxigdal_terrain as terrain;terrain
pub use oxigdal_vrt as vrt;vrt
pub use oxigdal_flatgeobuf as flatgeobuf;flatgeobuf
pub use oxigdal_jpeg2000 as jpeg2000;jpeg2000
pub use oxigdal_cloud as cloud;cloud
pub use oxigdal_proj as proj;proj
pub use oxigdal_algorithms as algorithms;algorithms
pub use oxigdal_analytics as analytics;analytics
pub use oxigdal_streaming as streaming_ext;streaming
pub use oxigdal_ml as ml;ml
pub use oxigdal_gpu as gpu;gpu
pub use oxigdal_server as server;server
pub use oxigdal_temporal as temporal;temporal
pub use oxigdal_gpkg as gpkg;gpkg
pub use oxigdal_pmtiles as pmtiles;pmtiles
pub use oxigdal_mbtiles as mbtiles;mbtiles
pub use oxigdal_copc as copc;copc
pub use oxigdal_index as index;index
pub use oxigdal_noalloc as noalloc;noalloc
pub use oxigdal_services as services;services

Modules§

builder
Builder patterns for dataset creation and opening. Builder patterns for ergonomic dataset creation and opening.
cloud_detect
Cloud URI detection and transparent dispatch for Dataset::open. Cloud URI detection and transparent dispatch for crate::Dataset::open.
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.
vrt_builder
Virtual Raster construction from multiple source datasets. Virtual Raster (VRT) construction from multiple source datasets.

Structs§

BandIter
Lazy iterator over raster bands of a Dataset.
BandStatistics
Statistics for a single raster band.
BoundingBox
A 2D bounding box in any coordinate system
ConversionOptions
Options controlling Dataset::convert.
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§

Compression
Output compression codec for Dataset::convert.
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