[package]
edition = "2021"
rust-version = "1.70"
name = "evoc"
version = "0.0.1"
authors = ["Eugene Hauptmann"]
build = "build.rs"
exclude = [
"/.venv-parity",
"/examples/output",
"/examples/*.py",
"/tests/fixtures",
"/benches/history",
"/scripts",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Embedding Vector Oriented Clustering — fast clustering of high-dimensional embedding vectors (Rust port of EVōC)"
homepage = "https://github.com/eugenehp/evoc-rs"
documentation = "https://docs.rs/evoc"
readme = "README.md"
keywords = [
"clustering",
"embeddings",
"knn",
"hdbscan",
"umap",
]
categories = [
"science",
"algorithms",
]
license = "BSD-2-Clause"
repository = "https://github.com/eugenehp/evoc-rs"
[package.metadata.docs.rs]
all-features = true
[features]
bench-json = ["dep:serde_json"]
cluster = ["embed"]
datasets = [
"npy",
"dep:ureq",
"dep:flate2",
"dep:tar",
"dep:zip",
]
default = ["full"]
embed = ["init"]
full = [
"cluster",
"npy",
"datasets",
]
graph = ["knn"]
init = ["graph"]
knn = ["dep:rlx-cpu"]
npy = ["dep:ndarray-npy"]
rlx-all = [
"rlx-cpu",
"rlx-cuda",
"rlx-mlx",
"rlx-rocm",
"rlx-wgpu",
]
rlx-cpu = ["cluster"]
rlx-cuda = [
"cluster",
"dep:rlx",
"rlx/cpu",
"rlx/cuda",
]
rlx-mlx = [
"cluster",
"dep:rlx",
"rlx/cpu",
"rlx/mlx",
]
rlx-rocm = [
"cluster",
"dep:rlx",
"rlx/cpu",
"rlx/rocm",
]
rlx-wgpu = [
"cluster",
"dep:rlx",
"rlx/cpu",
"rlx/gpu",
]
rlx_metal = ["rlx-mlx"]
[lib]
name = "evoc"
path = "src/lib.rs"
[[bin]]
name = "backend_smoke"
path = "src/bin/backend_smoke.rs"
required-features = [
"cluster",
"npy",
]
[[bin]]
name = "bench"
path = "src/bin/bench.rs"
required-features = [
"cluster",
"npy",
]
[[bin]]
name = "bench_backends"
path = "src/bin/bench_backends.rs"
required-features = [
"cluster",
"npy",
"bench-json",
]
[[bin]]
name = "bench_huge"
path = "src/bin/bench_huge.rs"
required-features = ["cluster"]
[[bin]]
name = "emb_epoch_diff"
path = "src/bin/emb_epoch_diff.rs"
required-features = [
"cluster",
"npy",
]
[[bin]]
name = "fashion_mnist_fetch"
path = "src/bin/fashion_mnist_fetch.rs"
required-features = ["datasets"]
[[bin]]
name = "mnist_fetch"
path = "src/bin/mnist_fetch.rs"
required-features = ["datasets"]
[[bin]]
name = "mnist_labels"
path = "src/bin/mnist_labels.rs"
required-features = [
"cluster",
"datasets",
"npy",
]
[[example]]
name = "bbc_news_clustering"
path = "examples/bbc_news_clustering.rs"
required-features = [
"cluster",
"datasets",
]
[[example]]
name = "cluster_in_memory"
path = "examples/cluster_in_memory.rs"
required-features = ["cluster"]
[[example]]
name = "fashion_mnist_clustering"
path = "examples/fashion_mnist_clustering.rs"
required-features = [
"cluster",
"datasets",
]
[[example]]
name = "news_clustering"
path = "examples/news_clustering.rs"
required-features = [
"cluster",
"datasets",
]
[[example]]
name = "user_clustering"
path = "examples/user_clustering.rs"
required-features = [
"cluster",
"npy",
]
[[test]]
name = "backend_metal_smoke"
path = "tests/backend_metal_smoke.rs"
[[test]]
name = "backend_resolve"
path = "tests/backend_resolve.rs"
[[test]]
name = "backend_strict_equivalence"
path = "tests/backend_strict_equivalence.rs"
[[test]]
name = "graph_parity"
path = "tests/graph_parity.rs"
[[test]]
name = "parity"
path = "tests/parity.rs"
[[test]]
name = "parity_intermediates"
path = "tests/parity_intermediates.rs"
[[test]]
name = "parity_reduced_init_canned"
path = "tests/parity_reduced_init_canned.rs"
[[test]]
name = "smoke"
path = "tests/smoke.rs"
[[bench]]
name = "evoc_bench"
path = "benches/evoc_bench.rs"
harness = false
required-features = [
"cluster",
"npy",
]
[dependencies.faer]
version = "0.20"
features = [
"std",
"svd",
"evd",
]
default-features = false
[dependencies.flate2]
version = "1.1"
optional = true
[dependencies.ndarray]
version = "0.16"
features = ["rayon"]
[dependencies.ndarray-npy]
version = "0.9"
optional = true
[dependencies.rand]
version = "0.8"
[dependencies.rayon]
version = "1.10"
[dependencies.rlx]
version = "0.2.1"
optional = true
default-features = false
[dependencies.rlx-cpu]
version = "0.2.1"
optional = true
[dependencies.rustc-hash]
version = "2"
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.sprs]
version = "0.11"
[dependencies.tar]
version = "0.4"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.ureq]
version = "2.12"
features = [
"gzip",
"tls",
]
optional = true
default-features = false
[dependencies.zip]
version = "2.2"
features = ["deflate"]
optional = true
default-features = false
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.ndarray]
version = "0.16"
features = ["rayon"]
[dev-dependencies.ndarray-npy]
version = "0.9"
[dev-dependencies.rand_chacha]
version = "0.3"
[dev-dependencies.serde_json]
version = "1"
[build-dependencies.cc]
version = "1.2"