[package] name = "eoc-rerank" version.workspace = true edition.workspace = true rust-version.workspace = true license.workspace = true repository.workspace = true authors.workspace = true description = "EOC re-ranking + hybrid retrieval — BM25, SPLADE, dense (HNSW), RRF fusion, and cross-encoder rerankers (Cohere / Voyage / bge / ms-marco / ColBERT)." [dependencies] eoc-core.workspace = true eoc-embeddings = { path = "../eoc-embeddings" } async-trait.workspace = true serde.workspace = true serde_json = "1" thiserror.workspace = true tokio = { version = "1", default-features = false, features = ["macros", "sync", "rt"] } reqwest = { version = "0.13", default-features = false, features = ["rustls", "json"] } unicode-normalization = "0.1" tracing = "0.1" # Optional — local cross-encoder inference. Heavy; off by default. ort = { version = "2.0.0-rc.10", optional = true, default-features = false, features = ["std"] } tokenizers = { version = "0.23", optional = true, default-features = false, features = ["onig"] } [dev-dependencies] tokio = { version = "1", default-features = false, features = ["macros", "rt-multi-thread", "test-util"] } wiremock = "0.6" [features] default = [] local = ["dep:ort", "dep:tokenizers"] stemming = []