[package] name = "aaru" version = "0.1.9" edition = "2021" readme = "readme.md" description = "Actionable Area Routing Utilities for OSM and MVT" license = "MIT" include = ["docs", "src/**/*", "proto/**/*", "build.rs", "readme.md"] [lib] name = "aaru" path = "src/lib.rs" bench = false [[example]] name = "route" required-features = ["route", "grpc_server"] path = "examples/route.rs" [[example]] name = "tile" required-features = ["tile"] path = "examples/tile.rs" [dependencies] # Algorithm rstar = { version = "0.12.2", features = ["serde"] } petgraph = { version = "0.6.5", features = ["serde-1", "graphmap", "rayon"] } # Testing Deps. serde = { version = "1.0.214", features = ["derive"] } # Logging Utility log = { version = "0.4.22", features = [] } dotenv = "0.15.0" test-log = { version = "0.2.16", features = ["log"] } # gRPC Server Dependencies [Optional-"grpc_server"] tonic = { version = "0.12.3", features = ["tls", "tls-roots"], optional = true } tonic-reflection = { version = "0.12.3", optional = true } tonic-web = { version = "0.12.3", optional = true } bytes = { version = "1.8.0", features = ["default"] } # Required for io::Cursor prost = { version = "0.13.3"} tokio = { version = "1.41.0", features = ["rt", "rt-multi-thread", "macros"], optional = true } # HTTP Server Dependencies [Optional-"http_server"] tower-http = { version = "0.6.1", features = ["cors"], optional = true } axum = { version = "0.7.7", features = ["query"], optional = true } axum-macros = { version = "0.4.1", optional = true } serde_qs = { version = "0.13.0", optional = true } # Tracing [Optional-"tracing"] tracing = { version = "0.1.40", optional = true } tracing-subscriber = { version = "0.3.18", features = ["tracing-log", "fmt", "env-filter"], optional = true } opentelemetry = { version = "0.26.0", optional = true } opentelemetry_sdk = { version = "0.26.0", features = ["rt-tokio"], optional = true } tracing-opentelemetry = { version = "0.27.0", optional = true } opentelemetry-otlp = { version = "0.26.0", features = ["tls"], optional = true } # Optimisations and Compression rayon = "1.10.0" either = "1.13.0" chrono = "0.4.38" flate2 = { version = "1.0.34", features = ["zlib-ng"], optional = true } fast_hilbert = { version = "2.0.0", optional = true } scc = { version = "2.2.4", optional = true } geo = "0.29.1" wkt = "0.11.1" mimalloc = { version = "0.1.43", optional = true } geohash = "0.13.1" strum = { version = "0.26.3", features = ["phf", "derive"] } [build-dependencies] tonic-build = { version = "0.12.3", features = ["prost"] } prost-build = { version = "0.13.3"} [dev-dependencies] osmpbf = { version = "0.3.4", features = ["zlib-ng"], default-features = false } criterion = { version = "2.7.2", package = "codspeed-criterion-compat" } [[bench]] name = "codec_sweep" harness = false [[bench]] name = "codec_target" harness = false [features] default = ["codec", "route", "mimalloc"] tracing = ["dep:tracing", "tracing-subscriber", "opentelemetry", "opentelemetry_sdk", "tracing-opentelemetry", "opentelemetry-otlp"] grpc_server = ["tonic", "tonic-reflection", "tonic-web", "tower-http", "tokio"] http_server = ["tower-http", "axum", "axum-macros", "serde_qs", "tokio"] tile = ["http_server", "fast_hilbert"] route = ["grpc_server", "scc", "codec"] codec = ["flate2"] all = ["tile", "route", "codec"] [package.metadata.docs.rs] features = ["tile", "route", "codec"] [profile.release] opt-level = 3 lto = true [profile.bench] opt-level = 3 lto = true [[example]] name = "Route Client" path = "examples/route_client.rs" required-features = ["grpc_server"]