Hexcore is a modular C++ vector database focused on clarity of architecture and extensibility.
| Layer | Responsibility | Key Types |
|---|---|---|
| Core | Fundamental types, vector math, memory management | Vector, Distance, MemoryPool, types.hpp |
| Storage | Persistence + metadata indexing | StorageInterface, FileStorage, MemoryStorage, VectorStore, MetadataStore |
| Indexing | Approximate / exact nearest neighbor search | IndexInterface, FlatIndex (+ IVF/HNSW/PQ placeholders) |
| API | High-level user operations & orchestration | HexcoreClient, Database, Collection, configs & query builders |
| Area | Item | Status |
|---|---|---|
| Core | Vector abstraction with dimension metadata; normalization utilities |
[x] |
| Distance | L2, L2 Squared, Cosine, Inner Product, L1 via pluggable Distance strategies |
[x] |
| Memory | Configurable MemoryPool and pool-backed temporary allocations |
[x] |
| Storage | MemoryStorage (in‑process) |
[x] |
| Storage | FileStorage (VectorStore + MetadataStore) |
[x] |
| Storage | Tag/attribute inverted indexes | [x] |
| Indexing | Pluggable IndexInterface; baseline FlatIndex implemented |
[x] |
| API | High-level HexcoreClient, Database, Collection; Config/ConfigBuilder |
[x] |
| Query | QueryBuilder, QueryOptions, QueryFilter; selective vectors/metadata/distances; thresholds and exclusions |
[x] |
| Observability | Collection stats (vector count, index built, storage usage) | [x] |
| Indexing & Search | IVF Flat (coarse quantization) | [ ] |
| Indexing & Search | IVF-PQ (product quantization) | [ ] |
| Indexing & Search | HNSW graph index | [ ] |
| Indexing & Search | PQ/OPQ training pipeline & codebook persistence | [ ] |
| Indexing & Search | Graph maintenance utilities (level promotion, lazy deletion) | [ ] |
| Query & Filtering | Boolean tag/attribute expressions (AND/OR/NOT DSL) | [ ] |
| Query & Filtering | Result caching & prefetch strategies | [ ] |
| Server & Interfaces | HTTP/REST service (collection management, insert, search) | [ ] |
| Server & Interfaces | gRPC API for high‑throughput streaming inserts | [ ] |
| Server & Interfaces | WebSocket streaming search / progress events | [ ] |
| Server & Interfaces | Observability: Prometheus metrics, structured logging, tracing (OTel) | [ ] |
| Performance & Systems | SIMD acceleration (AVX2/AVX512) & tuned fallbacks | [ ] |
| Performance & Systems | Thread pool / task scheduler for batch search & index builds | [ ] |
| Performance & Systems | Parallel index building & incremental rebuild triggers | [ ] |
| Developer Experience | Python bindings (Pybind11) | [ ] |
| Developer Experience | Benchmark suite & dataset loaders | [ ] |
Requirements: CMake >= 3.14, a C++17 compiler (GCC / Clang), Threads library.
git clone https://github.com/lalitx17/Hexcore.git
cd Hexcore
mkdir build && cd build
cmake ..
cmake --build . -j$(nproc)
./bin/examples/hexcore_example