Repository navigation
v0.1.0
First public release of GoVec: a compact vector search engine in Go, served over REST and gRPC from a single static binary.
Highlights
- HNSW with heuristic neighbour selection, plus exact brute-force search; cosine and Euclidean distance
- Scalar int8 quantization: -61% disk and -26% RAM at 100k vectors
- Hybrid dense + sparse search and metadata filtering
- Write-ahead log and atomic snapshots, with crash recovery on startup
- REST and gRPC with identical semantics, including streaming batch insert over gRPC
- Multi-arch container image (linux/amd64, linux/arm64)
Run it
docker run -p 9697:9697 -v govec-data:/data ghcr.io/pradyothsp/govec:0.1.0REST listens on 9697; gRPC on 9698 when grpc.enabled is true. See the README for the API and configuration.
Known limitations
- Single node, in-memory first
- Filtered HNSW search can return fewer than
kresults for selective filters - Hybrid search scores sparse vectors with an O(n) scan
Related
- Python SDK: govec-python
- Benchmarks against Chroma and Qdrant: govec-bench
Full Changelog: https://github.com/Pradyothsp/govec/commits/v0.1.0