oxiproj-engine 0.1.2

Proj-string parser, operation dispatch, and transformation pipelines for OxiProj.
Documentation

oxiproj-engine

Proj-string parser, operation dispatch, and transformation pipelines for OxiProj.

Part of the OxiProj workspace — a 100% Pure-Rust port of PROJ 9.8.0.

Features

  • Proj-string parser (parse, ParamList, ParamView): tokenizes and validates +key=value proj-strings
  • Operation dispatch (create): resolves a proj-string to a concrete Pj that chains projections and transformations
  • Pipeline support (Pipeline): composes multi-step +proj=pipeline operations including +step and +inv modifiers
  • Ellipsoid setup (setup_ellipsoid): derives ellipsoid parameters from any valid combination of axis and flattening parameters
  • Context and TmercAlgo enums to configure transverse Mercator algorithm selection and other engine settings
  • Batch coordinate conversion via trans_array for high-throughput workloads

Usage

use oxiproj_engine::{create, trans, Context};
use oxiproj_core::Direction;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let ctx = Context::default();
    let pj = create(&ctx, "+proj=utm +zone=32 +ellps=WGS84")?;
    let (x, y, _z, _t) = trans(&pj, Direction::Forward, 12.0f64.to_radians(), 55.0f64.to_radians(), 0.0, f64::INFINITY)?;
    println!("UTM Zone 32N  E={:.2}  N={:.2}", x, y);
    Ok(())
}

License

Apache-2.0. Copyright 2026 COOLJAPAN OU (Team Kitasan).