valhalla 0.6.21

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

version = "0.6.21"
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/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",
    # Python bindings and other files not needed for Rust bindings
    "valhalla/third_party/dirent",
    "valhalla/third_party/fastcov",
    "valhalla/third_party/nanobind/*",
    "valhalla/third_party/rapidjson/bin/*",
    "valhalla/third_party/tz/NEWS",
    "valhalla/third_party/tz/*.html",
    "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.9"
# Lock on cxx version prior to https://github.com/dtolnay/cxx/pull/1586 that breaks pointer arithmetic magic we use
# for fast iteration over slices of `valhalla::DirectedEdge` and `valhalla::NodeInfo`.
cxx = { version = "=1.0.172", features = ["c++20"] }
prost = "0.14"

[build-dependencies]
cmake = "0.1"
cxx-build = "=1.0.172"
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.20"
criterion = { version = "0.7", default-features = false }

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