flow-knn 0.1.1

Algorithm-agnostic k-NN graphs for flow cytometry — exact, usearch HNSW, optional ann-search-rs
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2024"
name = "flow-knn"
version = "0.1.1"
authors = ["James Moynihan"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Algorithm-agnostic k-NN graphs for flow cytometry — exact, usearch HNSW, optional ann-search-rs"
readme = "README.md"
keywords = [
    "knn",
    "hnsw",
    "nearest-neighbor",
    "flow-cytometry",
    "ann",
]
categories = [
    "science",
    "algorithms",
    "mathematics",
]
license = "MIT"
repository = "https://github.com/jrmoynihan/flow/flow-knn"

[package.metadata.scripts]
dry-release = "cargo smart-release flow-knn --update-crates-index"
publish = "cargo smart-release flow-knn --update-crates-index --execute"
changelog = "cargo changelog flow-knn --write"

[features]
ann-search = [
    "dep:ann-search-rs",
    "dep:faer",
]
default = ["hnsw"]
gpu = [
    "ann-search",
    "ann-search-rs/gpu",
    "dep:cubecl",
]
hnsw = ["dep:usearch"]
kdtree = ["dep:kiddo"]

[lib]
name = "flow_knn"
path = "src/lib.rs"

[[example]]
name = "collect_matrix"
path = "examples/collect_matrix.rs"

[[bench]]
name = "exact_knn_micro"
path = "benches/exact_knn_micro.rs"
harness = false

[[bench]]
name = "knn_cpu_vs_gpu"
path = "benches/knn_cpu_vs_gpu.rs"
harness = false
required-features = [
    "hnsw",
    "ann-search",
    "gpu",
]

[[bench]]
name = "knn_graph_io"
path = "benches/knn_graph_io.rs"
harness = false

[dependencies.ann-search-rs]
version = "0.4.4"
optional = true
default-features = false

[dependencies.bytemuck]
version = "1.24"
features = ["derive"]

[dependencies.cubecl]
version = "0.10"
features = [
    "std",
    "wgpu",
]
optional = true
default-features = false

[dependencies.faer]
version = "=0.23.2"
optional = true

[dependencies.kiddo]
version = "5"
optional = true

[dependencies.rayon]
version = "1.11"

[dependencies.serde]
version = "1.0.228"
features = [
    "derive",
    "rc",
]

[dependencies.serde_json]
version = "1.0.149"

[dependencies.thiserror]
version = "2.0.19"

[dependencies.usearch]
version = "2.25"
features = ["simsimd"]
optional = true
default-features = false

[dev-dependencies.approx]
version = "0.5.1"

[dev-dependencies.criterion]
version = "0.8.1"
features = ["html_reports"]

[dev-dependencies.rand]
version = "0.10.2"