[package]
edition = "2024"
name = "tracematch"
version = "0.0.9"
authors = ["Evan Thomas <evan@evanjt.com>"]
build = false
exclude = ["tests/fixtures/raw_traces"]
publish = true
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-performance GPS route matching and activity analysis"
readme = "README.md"
keywords = [
"gps",
"route",
"matching",
"geospatial",
"fitness",
]
categories = [
"algorithms",
"science::geo",
]
license = "Apache-2.0"
repository = "https://github.com/evanjt/route-matcher"
[features]
cli = [
"gpx",
"clap",
"env_logger",
"chrono",
"parallel",
]
default = [
"ffi",
"parallel",
"http",
"persistence",
]
ffi = [
"uniffi",
"parallel",
]
http = [
"reqwest",
"tokio",
"futures",
"base64",
]
parallel = ["rayon"]
persistence = [
"rusqlite",
"rmp-serde",
]
[lib]
name = "tracematch"
crate-type = [
"rlib",
"staticlib",
"cdylib",
]
path = "src/lib.rs"
[[bin]]
name = "tracematch-cli"
path = "src/bin/cli.rs"
required-features = ["cli"]
[[bin]]
name = "uniffi-bindgen"
path = "uniffi-bindgen.rs"
[[example]]
name = "basic_matching"
path = "examples/basic_matching.rs"
[[test]]
name = "activity_store_test"
path = "tests/activity_store_test.rs"
[[test]]
name = "engine"
path = "tests/engine.rs"
[[test]]
name = "error"
path = "tests/error.rs"
[[test]]
name = "ffi_integration"
path = "tests/ffi_integration.rs"
[[test]]
name = "geo_utils"
path = "tests/geo_utils.rs"
[[test]]
name = "grouping"
path = "tests/grouping.rs"
[[test]]
name = "heatmap"
path = "tests/heatmap.rs"
[[test]]
name = "lib"
path = "tests/lib.rs"
[[test]]
name = "matching"
path = "tests/matching.rs"
[[test]]
name = "mod_test"
path = "tests/mod_test.rs"
[[test]]
name = "route_grouper_test"
path = "tests/route_grouper_test.rs"
[[test]]
name = "section_detection"
path = "tests/section_detection.rs"
[[test]]
name = "section_manipulation"
path = "tests/section_manipulation.rs"
[[test]]
name = "sections"
path = "tests/sections.rs"
[[test]]
name = "signature_store_test"
path = "tests/signature_store_test.rs"
[[test]]
name = "spatial_index_test"
path = "tests/spatial_index_test.rs"
[[test]]
name = "union_find"
path = "tests/union_find.rs"
[[bench]]
name = "iai_benchmarks"
path = "benches/iai_benchmarks.rs"
harness = false
[[bench]]
name = "section_detection"
path = "benches/section_detection.rs"
harness = false
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.chrono]
version = "0.4"
optional = true
[dependencies.clap]
version = "4.4"
features = ["derive"]
optional = true
[dependencies.env_logger]
version = "0.11"
optional = true
[dependencies.futures]
version = "0.3"
optional = true
[dependencies.geo]
version = "0.29"
[dependencies.gpx]
version = "0.10"
optional = true
[dependencies.log]
version = "0.4"
[dependencies.lru]
version = "0.12"
[dependencies.once_cell]
version = "1.19"
[dependencies.rayon]
version = "1.10"
optional = true
[dependencies.reqwest]
version = "0.12"
features = [
"json",
"rustls-tls",
]
optional = true
default-features = false
[dependencies.rmp-serde]
version = "1.1"
optional = true
[dependencies.rstar]
version = "0.12"
[dependencies.rusqlite]
version = "0.31"
features = ["bundled"]
optional = true
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"sync",
]
optional = true
[dependencies.uniffi]
version = "0.29"
features = ["cli"]
optional = true
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.iai-callgrind]
version = "0.14"
[dev-dependencies.rand]
version = "0.8"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
]
[build-dependencies.uniffi]
version = "0.29"
features = ["build"]
optional = true
[target.'cfg(target_os = "android")'.dependencies.android_logger]
version = "0.14"
[profile.release]
opt-level = "s"
lto = true
codegen-units = 1
strip = false
[profile.release-mobile]
panic = "abort"
inherits = "release"