valhalla 0.3.12

Rust bindings for Valhalla routing engine
Documentation

About

C++-to-Rust bindings for Valhalla to access road graph tiles, powered by cxx.

Features:

  • Reading Valhalla tiles and accessing information from road graph edges (DirectedEdge, EdgeInfo) and nodes (NodeInfo). Not all getters are accessible from Rust
  • Writing live traffic information directly to memory-mapped traffic.tar
  • Actor API (similar to what is accessible from Python) for Valhalla's routing engine, allowing route building and other routing operations from Rust

Usage

Add this to your Cargo.toml:

[dependencies]
valhalla = "0.3"

Dependencies

Since Valhalla heavily relies on system libraries, you need to install the following dependencies to build this project:

sudo apt-get update && sudo apt-get install -y --no-install-recommends clang pkg-config build-essential cmake libboost-dev liblz4-dev libprotobuf-dev protobuf-compiler zlib1g-dev

You can use the provided Dockerfile as a reference for projects that want to use valhalla-rs. It demonstrates the necessary dependencies and environment setup.

For more details, check the Valhalla documentation.

License

This project contains Rust bindings for the Valhalla routing engine. The entire project is licensed under the MIT License.

  • valhalla-rs bindings: Copyright (c) 2025 kinkard
  • Valhalla source code: Copyright (c) 2018 Valhalla contributors, Copyright (c) 2015-2017 Mapillary AB, Mapzen

Both components are licensed under the MIT License.

For the original Valhalla license, see valhalla/COPYING.