feat(binary): Add native binary vector storage with BinaryFlatIndex #7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements RFC-004: Flat Index for Binary Vectors, adding native binary vector support to EdgeVec with a specialized
BinaryFlatIndexoptimized for semantic caching and insert-heavy workloads.Key Features
StorageType::Binary(u32)- 32x memory reduction vs f32IndexType.binary(dimensions)Performance Characteristics
Use Cases
Files Changed
src/flat/mod.rs- New BinaryFlatIndex implementationsrc/storage/mod.rs- AddedStorageType::Binary(u32)variantsrc/wasm/mod.rs- WASM bindings for binary index creation and searchsrc/error.rs- AddedBinaryFlatIndexErrorto unified error hierarchydocs/rfcs/RFC_FLAT_INDEX.md- Design documentRelationship to FlatIndex (Week 40)
This PR complements the f32
FlatIndexadded in Week 40 (upstream). The two serve different purposes:Both coexist via the
IndexTypeenum.Test plan
cargo fmt --checkpassescargo clippy -- -D warningspasses