Skip to main content

dynomite/vector/
mod.rs

1//! Vector subsystem.
2//!
3//! This module is the in-process home of the Redis-Stack-style
4//! RediSearch FT.* command surface. The architecture decision
5//! lives in `docs/dynvec/fold-into-redis-path.md`; the short
6//! version is:
7//!
8//! 1. The [`dynvec`] crate provides the per-table storage +
9//!    HNSW index engine.
10//! 2. This module wraps each registered index in a
11//!    [`VectorTable`] and tracks them in a [`VectorRegistry`].
12//! 3. The Redis parser recognises FT.* commands and routes
13//!    them through this registry (Phase C, follow-up work).
14//! 4. Distributed k-NN queries are coordinated by the
15//!    [`query_fsm`] state machine, which fans out to every
16//!    primary peer covering the index's key range and merges
17//!    the per-peer top-K replies.
18//!
19//! Phase B (this commit) lands the registry, the schema
20//! types, and the moved query coordinator. The FT.* command
21//! parser, the cluster-machinery integration in
22//! [`query_fsm`], and the deprecation of the standalone
23//! [`dynvec::api`] HTTP surface are each follow-up work.
24
25pub mod query_fsm;
26pub mod registry;
27pub mod schema;
28pub mod wire;
29
30pub use registry::{RegistryError, VectorRegistry, VectorTable, VectorTableInfo};
31pub use schema::{
32    DistanceMetric, IndexAlgorithm, MetadataField, MetadataFieldType, VectorSchema, VectorType,
33};