[package]
edition = "2021"
name = "kiddo"
version = "5.3.0"
authors = ["Scott Donnelly <scott@donnel.ly>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A high-performance, flexible, ergonomic k-d tree library. Ideal for geo- and astro- nearest-neighbour and k-nearest-neighbor queries"
documentation = "https://docs.rs/kiddo"
readme = "README.md"
keywords = [
"kd-tree",
"kdtree",
"kd",
"nearest-neighbor",
"knn",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/sdd/kiddo"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
[features]
csv = ["dep:csv"]
default = [
"tracing",
"fixed",
]
f16 = ["dep:half"]
fixed = ["dep:fixed"]
las = ["dep:las"]
modified_van_emde_boas = []
rkyv = ["dep:rkyv"]
rkyv_08 = ["dep:rkyv_08"]
serde = [
"dep:serde",
"serde/derive",
"dep:serde_derive",
"dep:serde_with",
"fixed/serde",
"aligned-vec/serde",
]
simd = []
test_utils = [
"dep:rand",
"dep:rand_chacha",
"dep:rayon",
"dep:fixed",
]
tracing = [
"dep:tracing",
"dep:tracing-subscriber",
]
[lib]
name = "kiddo"
path = "src/lib.rs"
[[example]]
name = "avx2-check"
path = "examples/avx2-check.rs"
[[example]]
name = "build-float-doctest-tree"
path = "examples/build-float-doctest-tree.rs"
required-features = ["rkyv"]
[[example]]
name = "build-float-doctest-tree-rkyv_08"
path = "examples/build-float-doctest-tree-rkyv_08.rs"
required-features = ["rkyv_08"]
[[example]]
name = "build-immutable-doctest-tree"
path = "examples/build-immutable-doctest-tree.rs"
required-features = ["rkyv"]
[[example]]
name = "build-immutable-doctest-tree-rkyv_08"
path = "examples/build-immutable-doctest-tree-rkyv_08.rs"
required-features = ["rkyv_08"]
[[example]]
name = "check-select-nth-unstable"
path = "examples/check-select-nth-unstable.rs"
[[example]]
name = "cities"
path = "examples/cities.rs"
required-features = ["csv"]
[[example]]
name = "float-rkyv_08-deserialize"
path = "examples/float-rkyv_08-deserialize.rs"
required-features = ["rkyv_08"]
[[example]]
name = "float-rkyv_08-serialize"
path = "examples/float-rkyv_08-serialize.rs"
required-features = ["rkyv_08"]
[[example]]
name = "half"
path = "examples/half.rs"
required-features = ["f16"]
[[example]]
name = "immutable-large"
path = "examples/immutable-large.rs"
required-features = ["test_utils"]
[[example]]
name = "immutable-rkyv-deserialize"
path = "examples/immutable-rkyv-deserialize.rs"
required-features = ["rkyv"]
[[example]]
name = "immutable-rkyv-serialize"
path = "examples/immutable-rkyv-serialize.rs"
required-features = ["rkyv"]
[[example]]
name = "immutable-rkyv_08-deserialize"
path = "examples/immutable-rkyv_08-deserialize.rs"
required-features = ["rkyv_08"]
[[example]]
name = "immutable-rkyv_08-serialize"
path = "examples/immutable-rkyv_08-serialize.rs"
required-features = ["rkyv_08"]
[[example]]
name = "pointcloud-csv"
path = "examples/pointcloud-csv.rs"
required-features = [
"csv",
"rkyv",
]
[[example]]
name = "pointcloud-las"
path = "examples/pointcloud-las.rs"
required-features = [
"las",
"rkyv",
]
[[example]]
name = "rkyv"
path = "examples/rkyv.rs"
required-features = [
"csv",
"rkyv",
]
[[example]]
name = "rkyv-large-deserialize"
path = "examples/rkyv-large-deserialize.rs"
required-features = ["rkyv"]
[[example]]
name = "rkyv-large-serialize"
path = "examples/rkyv-large-serialize.rs"
required-features = ["rkyv"]
[[example]]
name = "serde"
path = "examples/serde.rs"
required-features = [
"csv",
"serde",
]
[[bench]]
name = "add_points"
path = "benches/add_points.rs"
harness = false
required-features = ["test_utils"]
[[bench]]
name = "best_n"
path = "benches/best_n.rs"
harness = false
required-features = ["test_utils"]
[[bench]]
name = "nearest_n"
path = "benches/nearest_n.rs"
harness = false
required-features = ["test_utils"]
[[bench]]
name = "nearest_one"
path = "benches/nearest_one.rs"
harness = false
required-features = ["test_utils"]
[[bench]]
name = "nearest_one_immutable"
path = "benches/nearest_one_immutable.rs"
harness = false
required-features = ["test_utils"]
[[bench]]
name = "within"
path = "benches/within.rs"
harness = false
required-features = ["test_utils"]
[[bench]]
name = "within_unsorted"
path = "benches/within_unsorted.rs"
harness = false
required-features = ["test_utils"]
[dependencies.aligned-vec]
version = "0.6.1"
[dependencies.array-init]
version = "2.1.0"
[dependencies.az]
version = "1"
[dependencies.cmov]
version = "0.5"
[dependencies.csv]
version = "1"
optional = true
[dependencies.divrem]
version = "1"
[dependencies.fixed]
version = "1"
features = ["num-traits"]
optional = true
[dependencies.half]
version = "=2.4.1"
features = ["num-traits"]
optional = true
[dependencies.las]
version = "0.9"
features = ["laz-parallel"]
optional = true
[dependencies.num-traits]
version = "0.2"
[dependencies.ordered-float]
version = "5"
[dependencies.rand]
version = "0.9"
optional = true
[dependencies.rand_chacha]
version = "0.9"
optional = true
[dependencies.rayon]
version = "1"
optional = true
[dependencies.rkyv]
version = "0.7"
features = [
"alloc",
"copy_unsafe",
"size_64",
]
optional = true
default-features = false
[dependencies.rkyv_08]
version = "0.8.9"
optional = true
package = "rkyv"
[dependencies.serde]
version = "1"
optional = true
[dependencies.serde_derive]
version = "1"
optional = true
[dependencies.serde_with]
version = "3"
optional = true
[dependencies.sorted-vec]
version = "0.8"
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
optional = true
[dev-dependencies.bincode]
version = "2"
features = ["serde"]
[dev-dependencies.codspeed-criterion-compat]
version = "4.0"
[dev-dependencies.criterion]
version = "0.6"
[dev-dependencies.elapsed]
version = "0.1.2"
[dev-dependencies.flate2]
version = "1"
features = ["zlib-ng-compat"]
default-features = false
[dev-dependencies.itertools]
version = "0.14"
[dev-dependencies.las]
version = "0.9"
features = ["laz-parallel"]
[dev-dependencies.memmap]
version = "0.7"
[dev-dependencies.proc-macro2]
version = "1"
features = [
"default",
"proc-macro",
]
[dev-dependencies.radians]
version = "0.3"
[dev-dependencies.rand]
version = "0.9"
[dev-dependencies.rand_distr]
version = "0.5"
[dev-dependencies.rayon]
version = "1"
[dev-dependencies.rstest]
version = "0.26"
[dev-dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.ubyte]
version = "0.10"
[target.'cfg(any(target_arch = "x86_64", target_arch = "aarch64"))'.dependencies.generator]
version = "0.8.4"
[profile.bench]
opt-level = 3
lto = true
codegen-units = 1
debug = 2
[profile.release]
lto = true
codegen-units = 1
debug = 2