[package] name = "fnntw" version = { workspace = true } description = { workspace = true } authors = { workspace = true } repository = { workspace = true } license = { workspace = true } edition = { workspace = true } [workspace] members = [ "./", "pyfnntw", ] [workspace.package] version = "0.4.1" description = "FNNTW: Fastest Nearest Neighbor (in the) West. A fast kdtree/kNN library." authors = ["Cavey Cool "] repository = "https://github.com/cavemanloverboy/fnntw" license = "MIT OR Apache-2.0" edition = "2021" [features] default = ["parallel", "no-position", "sqrt-dist2", "no-index"] timing = [] # Dev feature parallel = ["rayon"] # Enables parallel query methods and parallel median of medians sqrt-dist2 = [] # Apply square root to squared euclidean distance, returning the euclidean distance no-position = [] # Omits neighbor position no-index = ["no-position"] # Omits index and only returns distances. Also does not return position. tcmallocator = ["tcmalloc/bundled"] # This was found to be the best performing allocator but is not supported on all systems # jemalloc = ["jemallocator"] # snmallocator = ["snmalloc-rs"] # mimallocator = ["mimalloc"] # rpmallocator = ["rpmalloc"] [dependencies] ordered-float = "3.0.0" num-format = "0.4.0" thiserror = "1.0.32" ouroboros = "0.15.5" permutation = "0.4.1" crossbeam-channel = "0.5.6" likely_stable = "0.1.2" sync-unsafe-cell = "0.1.0" mimalloc = { version = "0.1.34", default-features = false, optional = true } tcmalloc = { version = "0.3.0", features = ["bundled"], optional = true } jemallocator = { version = "0.5.0", optional = true } snmalloc-rs = { version = "0.3.3", optional = true } rpmalloc = { version = "0.2.2", optional = true } [profile.release] lto = "fat" codegen-units = 1 [dev-dependencies] concat-idents = "1.1.3" seq-macro = "0.3.1" dry = "0.1.1" rand = "0.8.5" criterion = "0.3.6" pdqselect = "0.1.1" adqselect = "0.1.3" ndarray = "0.15.6" approx_eq = "0.1.8" ndarray-npy = "0.8.1" rayon = "1.5.3" floydrivest = "0.2.4" order-stat = "0.1.3" kth = "0.1.0" [dependencies.rayon] version = "1.5.3" optional = true [[bench]] name = "build" harness = false [[bench]] name = "build_nc" # nc stands for no criterion harness = false [[bench]] name = "medians" harness = false [[bench]] name = "euclidean" harness = false [[bench]] name = "query" harness = false [[bench]] name = "query_k" harness = false [[bench]] name = "query_k_axis" harness = false [[bench]] name = "par_sort" harness = false