valhalla 0.6.29

Rust bindings for Valhalla routing engine
[package]
name = "valhalla"

version = "0.6.29"
edition = "2024"
rust-version = "1.85"
description = "Rust bindings for Valhalla routing engine"
readme = "README.md"
repository = "https://github.com/kinkard/valhalla-rs"
license = "MIT"
keywords = ["geo", "routing", "navigation", "ffi", "valhalla"]
# Valhalla uses git submodules that bring a lot of files that we don't need in the published crate.
exclude = [
    "**/.*",
    "**/.github/*",
    "**/test/*",
    "**/tests/*",
    "**/doctest/*",
    "**/gtest/*",
    "**/googletest/*",
    "**/googlemock/*",
    "**/doc/*",
    "**/docs/*",
    "**/bench/*",
    "**/benches/*",
    "**/benchmarks/*",
    "**/example/*",
    "**/examples/*",

    "valhalla/docker",
    "valhalla/CHANGELOG.md",
    "valhalla/run_route_scripts",
    "valhalla/src/bindings",
    "valhalla/src/mjolnir", # Mjolnir is anyway disabled by `ENABLE_DATA_TOOLS=OFF` in build.rs
    "valhalla/src/valhalla_*", # Valhalla executables not needed for Rust bindings
    "valhalla/taginfo.json",
    "valhalla/test_requests",
    # Somehow, valhalla/LICENSE.md is required for cmake, so all unused docs are excluded in a more specific way.
    "valhalla/third_party/**/*.md",
    # Valhalla submodules that are not needed for Rust bindings
    "valhalla/third_party/cxxopts", # Used only by valhalla executables
    "valhalla/third_party/dirent",  # Windows only, anyway not supported by Rust bindings
    "valhalla/third_party/fastcov",
    "valhalla/third_party/just_gtfs", # Used only by Mjolnir to build transits
    "valhalla/third_party/libosmium", # Used only by Mjolnir to read OSM PBFs
    "valhalla/third_party/nanobind",  # Used only by Python bindings
    "valhalla/third_party/rapidjson/bin",
    "valhalla/third_party/tz/*.html",
    "valhalla/third_party/tz/NEWS",
    "valhalla/third_party/unordered_dense/data",
    "valhalla/third_party/unordered_dense/scripts",
]

# Makes possible to run profilers with `cargo bench`, e.g. `samply record cargo bench`
[profile.bench]
debug = "line-tables-only"

[dependencies]
bitflags = "2"
# Lock to specific version to avoid accidentally upgrading to a version that somehow breaks compatibility.
cxx = { version = "=1.0.194", features = ["c++20"] }
prost = "0.14"

[build-dependencies]
cmake = "0.1"
cxx-build = "=1.0.194"
miniserde = "0.1"    # For compile_commands.json parsing
pkg-config = "0.3"
prost-build = "0.14"

[dev-dependencies]
miniserde = "0.1"
pretty_assertions = "1"
tempfile = "3"
criterion = { version = "0.7", default-features = false }

[[bench]]
name = "actor_bench"
harness = false

[[bench]]
name = "tiles_bench"
harness = false