Scope: dev-only — the unpublished benchmark crate ONLY
This concerns benchmarks/beir-bench exclusively — a workspace member with
publish = false that is excluded from the published ordvec crate and the
ordvec PyPI wheel. The shipped artifacts are not affected:
cargo tree -p ordvec --all-features --edges normal,build,dev is clean of
bincode. No public API, crate consumer, or wheel user is touched by this issue.
Problem
benchmarks/beir-bench depends on hnsw_rs 0.3.x (the pure-Rust HNSW comparator
in the BEIR benchmark), which transitively pulls bincode 1.x. That trips
RUSTSEC-2025-0141, which is an unmaintained advisory (informational — not
a vulnerability). OSV / OpenSSF-Scorecard counts it repo-wide.
PR #240 triaged it with a documented deny.toml ignore (cargo-deny is configured
to error on unmaintained crates, so the ignore keeps CI green). This issue tracks
the clean elimination so the ignore can be removed and the Scorecard count
reaches zero.
Proposed fix
Swap hnsw_rs for a maintained pure-Rust HNSW crate that does not depend on
bincode 1.x — e.g. evaluate instant-distance, or move to a future hnsw_rs
release that drops bincode 1.x — in the benchmark crate only.
This overlaps naturally with the sublinear-candidate-gen research (the
HNSW-over-codes direction): if a better/maintained HNSW crate is adopted there,
bincode disappears for free.
Done when
Scope: dev-only — the unpublished benchmark crate ONLY
This concerns
benchmarks/beir-benchexclusively — a workspace member withpublish = falsethat is excluded from the publishedordveccrate and theordvecPyPI wheel. The shipped artifacts are not affected:cargo tree -p ordvec --all-features --edges normal,build,devis clean ofbincode. No public API, crate consumer, or wheel user is touched by this issue.Problem
benchmarks/beir-benchdepends onhnsw_rs 0.3.x(the pure-Rust HNSW comparatorin the BEIR benchmark), which transitively pulls
bincode1.x. That tripsRUSTSEC-2025-0141, which is an unmaintained advisory (informational — not
a vulnerability). OSV / OpenSSF-Scorecard counts it repo-wide.
PR #240 triaged it with a documented
deny.tomlignore (cargo-deny is configuredto error on unmaintained crates, so the ignore keeps CI green). This issue tracks
the clean elimination so the ignore can be removed and the Scorecard count
reaches zero.
Proposed fix
Swap
hnsw_rsfor a maintained pure-Rust HNSW crate that does not depend onbincode1.x — e.g. evaluateinstant-distance, or move to a futurehnsw_rsrelease that drops
bincode1.x — in the benchmark crate only.This overlaps naturally with the sublinear-candidate-gen research (the
HNSW-over-codes direction): if a better/maintained HNSW crate is adopted there,
bincodedisappears for free.Done when
cargo audit/ OSV shows no RUSTSEC-2025-0141 in the dependency treeRUSTSEC-2025-0141ignore is removed fromdeny.tomlcargo tree -p ordvecstays clean)