6 releases (3 breaking)

0.4.1 May 5, 2025
0.4.0 Mar 15, 2025
0.3.0 Feb 16, 2025
0.2.0 Dec 25, 2024
0.1.1 Jul 14, 2023

#55 in Geospatial

Download history 3/week @ 2025-02-05 118/week @ 2025-02-12 32/week @ 2025-02-19 14/week @ 2025-02-26 19/week @ 2025-03-05 155/week @ 2025-03-12 108/week @ 2025-03-19 38/week @ 2025-03-26 56/week @ 2025-04-02 45/week @ 2025-04-09 66/week @ 2025-04-16 55/week @ 2025-04-23 154/week @ 2025-04-30 80/week @ 2025-05-07

369 downloads per month

Apache-2.0

215KB
3K SLoC

Rust API client for Valhalla

This crate contains the types and functions for interacting with the Valhalla API.

These APIs are implemented:

Features and usage

We provide two clients:

The second one is behind the (default-enabled) blocking feature, so if you don't need it, you can disable it via default-features = false.

We also offer the (default-enabled) gpx feature. This enables reading and writing GPX (GPS Exchange Format) files for APIs where we have the needed context.

Example

// an async version is available at valhalla_client::Valhalla
use valhalla_client::blocking::Valhalla;
use valhalla_client::route::{Location, Manifest};
use valhalla_client::costing::{Costing};

let valhalla = Valhalla::default();

let amsterdam = Location::new(4.9041, 52.3676);
let utrecht = Location::new(5.1214, 52.0907);
let manifest = Manifest::builder()
    .locations([amsterdam, utrecht])
    .costing(Costing::Motorcycle(Default::default()));

let response = valhalla.route(manifest).unwrap();

println!("{:#?}", response);

// If the gpx feature is enabled, you can convert the response to a gpx::Gpx object
// let gpx = response.trip.into();

For further examples, please see the different clients:

Dependencies

~8–20MB
~281K SLoC