[package]
name = "rankops"
version = "0.1.6"
edition = "2021"
license = "MIT OR Apache-2.0"
description = "Operations on ranked lists: fusion (RRF, Copeland, CombMNZ, DBSF, 14 methods), reranking (MaxSim/ColBERT, MMR, DPP), evaluation (NDCG, MAP, MRR), diagnostics, pipeline builder."
repository = "https://github.com/arclabs561/rankops"
readme = "README.md"
keywords = ["rerank", "rrf", "retrieval", "rankops", "fusion"]
categories = ["algorithms", "mathematics", "science"]

[workspace]

[dependencies]
serde = { version = "1.0", optional = true, features = ["derive"] }
# SIMD primitives for reranking (MaxSim/ColBERT)
innr = { version = "0.2", optional = true }
# Hierarchical clustering for ColBERT (optional)
kodama = { version = "0.3", optional = true }
# Pareto frontier for multi-objective reranking (optional)
pare = { version = "0.2.0", optional = true }

[features]
default = ["rerank"]
serde = ["dep:serde"]
# Reranking: MaxSim (ColBERT), diversity, matryoshka — requires innr for SIMD
rerank = ["dep:innr"]
# Alias so #[cfg(feature = "innr")] in rerank/simd.rs matches (rerank enables innr)
innr = ["rerank"]
# Hierarchical ColBERT; enables kodama for dendrogram clustering
hierarchical = ["dep:kodama"]
# Pareto frontier for multi-objective result selection
pareto = ["dep:pare"]

[dev-dependencies]
criterion = { version = "0.7", features = ["html_reports"] }
proptest = "1.9"


[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
