valhalla-client

Crates.iovalhalla-client
lib.rsvalhalla-client
version0.4.1
created_at2023-07-11 01:10:36.518653+00
updated_at2025-05-05 21:38:52.129906+00
descriptionAPI client for the Valhalla routing engine
homepage
repositoryhttps://github.com/jelmer/valhalla-client-rs
max_upload_size
id913431
size281,712
Jelmer Vernooij (jelmer)

documentation

README

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:

Commit count: 279

cargo fmt