Skip to content

lalitx17/Hexcore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hexcore Logo

Hexcore

Hexcore is a modular C++ vector database focused on clarity of architecture and extensibility.

Architecture Overview

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

Features & Roadmap

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 [ ]

Build

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

References

Faiss

HNSW

Faiss Blog

How Vector DBs work

About

Built a Vector Database from Scratch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published