[package] name = "kiddo" version = "4.2.1" edition = "2021" authors = ["Scott Donnelly "] description = "A high-performance, flexible, ergonomic k-d tree library. Ideal for geo- and astro- nearest-neighbour and k-nearest-neighbor queries" keywords = ["kd-tree", "kdtree", "kd", "nearest-neighbor", "knn"] readme = "README.md" repository = "https://github.com/sdd/kiddo" documentation = "https://docs.rs/kiddo" license = "MIT OR Apache-2.0" autobenches = false resolver = "2" [profile.release] debug = true lto = true codegen-units = 1 [profile.bench] debug = true lto = true codegen-units = 1 opt-level = 3 [dependencies] log = "0.4" num-traits = "0.2" fixed = { version = "1", features = ["num-traits"] } az = "1" doc-comment = "0.3" elapsed = "0.1" divrem = "1" ordered-float = "4" itertools = "0.13" ubyte = "0.10" init_with = "1" sorted-vec = "0.8" [dev-dependencies] bincode = "1.3" criterion = "0.5" csv="1" flate2 = { version = "1", features = ["zlib-ng-compat"], default-features = false } log = "0.4" memmap = "0.7" proc-macro2 = { version = "1", features=["default", "proc-macro"] } radians = "0.3" rayon = "1" rand = "0.8" rand_distr = "0.4" serde = { version = "1", features = ["derive", "rc"] } serde_json = "1.0" codspeed-criterion-compat = "2" # required to be able to run tests without specifying --features=test_utils # see https://github.com/rust-lang/cargo/issues/2911#issuecomment-749580481 kiddo = { path = ".", features = ["test_utils"] } [target.'cfg(any(target_arch = "x86_64", target_arch = "aarch64"))'.dependencies] generator = "0.8.1" [dependencies.rayon] version = "1" optional = true [dependencies.rand] version = "0.8" optional = true [dependencies.rand_chacha] version = "0.3" optional = true [dependencies.tracing] version = "0.1" optional = true [dependencies.tracing-subscriber] version = "0.3" optional = true [dependencies.serde] version = "1" optional = true [dependencies.serde_derive] version = "1" optional = true [dependencies.serde_with] version = "3" optional = true [dependencies.half] version = "2.3" optional = true features = ["num-traits"] [dependencies.rkyv] version = "0.7" optional = true default-features = false features = ["alloc", "copy_unsafe", "size_64"] [features] default = ["tracing"] f16 = ["half"] global_allocate = [] immutable = [] serialize = ["serde", "serde/derive", "serde_derive", "serde_with", "fixed/serde"] serialize_rkyv = ["rkyv"] simd = [] test_utils = ["rand", "rand_chacha", "rayon"] tracing = ["dep:tracing", "tracing-subscriber"] [package.metadata.docs.rs] all-features = true [[bench]] name = "add_points" harness = false required-features = ["test_utils"] [[bench]] name = "nearest_one" harness = false required-features = ["test_utils"] [[bench]] name = "nearest_one_immutable" harness = false required-features = ["test_utils"] [[bench]] name = "nearest_n" harness = false required-features = ["test_utils"] [[bench]] name = "within" harness = false required-features = ["test_utils"] [[bench]] name = "within_unsorted" harness = false required-features = ["test_utils"] [[bench]] name = "best_n" harness = false required-features = ["test_utils"] [[example]] name = "cities" path = "examples/cities.rs" [[example]] name = "serde" path = "examples/serde.rs" required-features = ["serialize"] [[example]] name = "rkyv" path = "examples/rkyv.rs" required-features = ["serialize_rkyv"] [[example]] name = "rkyv-large-serialize" path = "examples/rkyv-large-serialize.rs" required-features = ["serialize_rkyv"] [[example]] name = "rkyv-large-deserialize" path = "examples/rkyv-large-deserialize.rs" required-features = ["serialize_rkyv"] [[example]] name = "immutable-large" path = "examples/immutable-large.rs" required-features = ["test_utils"] [[example]] name = "immutable-rkyv-serialize" path = "examples/immutable-rkyv-serialize.rs" required-features = ["serialize_rkyv"] [[example]] name = "immutable-rkyv-deserialize" path = "examples/immutable-rkyv-deserialize.rs" required-features = ["serialize_rkyv"] [[example]] name = "check-select-nth-unstable" path = "examples/check-select-nth-unstable.rs" [[example]] name = "simd_leaf" path = "examples/simd_leaf.rs" required-features = ["test_utils"] [[example]] name = "avx2-check" path = "examples/avx2-check.rs" [[example]] name = "build-immutable-doctest-tree" path = "examples/build-immutable-doctest-tree.rs" required-features = ["serialize_rkyv"] [[example]] name = "build-float-doctest-tree" path = "examples/build-float-doctest-tree.rs" required-features = ["serialize_rkyv"] [[example]] name = "half" path = "examples/half.rs"