v0.1.1
vecq-core 0.1.1
First public release of vecq on crates.io. vecq is a training-free 4-bit vector quantization and search library written in pure Rust with zero dependencies, built for on-device and edge workloads where index size and build simplicity matter more than last-millisecond latency.
[dependencies]
vecq-core = "0.1.1"Highlights
- 4-bit quantization, no training - quantize float32 vectors to 4-bit codes with no calibration dataset, no training pass, no model artifacts. Add vectors, search, persist, load.
- 6x smaller index - 514 bytes per 768-dim vector vs 3072 bytes for f32 (5.98x compression).
- Zero dependencies -
cargo add vecq-corepulls exactly one crate. No C++ toolchain, no transitive deps, compiles anywhere Rust does. - Deterministic results - bit-identical rankings across every ARM64 device (no FMA contraction, no platform-dependent reordering).
- ARM64 NEON path - 4-vector batch scoring with bounded-heap top-k for flat, predictable scan latency.
Benchmark
768-dim EmbeddingGemma embeddings, 2000 index vectors, 100 queries, ARM64. Full methodology in docs/BENCHMARK.md.
| Metric | vecq | f32 brute force | usearch |
|---|---|---|---|
| Bytes per vector | 514 | 3072 | - |
| Compression | 5.98x | 1x | - |
| Query latency | 0.89 ms | - | 0.23 ms |
| Recall@10 | 0.958 | 1.000 | 0.995 |
What's Changed
Added
- Release pipeline: push a
vX.Y.Ztag onmainto publishvecq-coreto crates.io, verify the version via the crates.io API, and create the GitHub Release.
Full changelog: v0.1.0...v0.1.1
When to use vecq
Use it when the index lives on-device, dimensions are a few hundred to a thousand, the corpus is in the tens of thousands, and you value small files and simple builds. For server-side workloads at scale, use a full ANN index (Qdrant, usearch) and keep vecq for the edge.