Skip to content

upstream: brute_force serialize/deserialize Rust bindings (cuvs follow-up 1/3) #1682

Description

@jamie8johnson

Follow-up cuvs contribution #1 of 3 (smallest first — see also the scalar-quantizer and refine issues). Single-feature PR per upstream norms.

What

Wrap brute_force serialize/deserialize in the cuvs Rust crate. The C header (c/include/cuvs/neighbors/brute_force.h) exposes serialize symbols (6 mentions); rust/cuvs/src/brute_force.rs wraps none of them. Pure parity gap — same template as our CAGRA/IVF-SQ serialize work.

Upstream guidelines (digest, from .github/PULL_REQUEST_TEMPLATE.md + observed conventions)

  • Unit tests required for all changes (serialize round-trip re-verifying search, mirroring our IVF-SQ test)
  • PR description in the template text box; use closing keywords if an upstream issue exists
  • Never rebase/force-push after review begins — merge main into the branch for conflicts
  • Don't expand scope after review starts
  • Maintainers apply labels (improvement/feature request + non-breaking); plain imperative title (e.g. "Add serialize/deserialize to brute_force Rust bindings"); draft PR if not review-ready
  • RAPIDS copyright header on changed files, creation-year-to-current range; commit style feat(rust): ... per recent rust PRs
  • Branch off main (RAPIDS retired branch-XX.YY)

Etiquette gate

Hold submission until NVIDIA/cuvs#2229 (IVF-SQ) gets first maintainer feedback — incorporate any conventions they request there before opening this one. Implementation can proceed any time in ~/cuvs-contrib (branch rust-brute-force-serialize).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions