Welcome to GoVector Documentation¶
GoVector is a lightweight, embeddable vector database written entirely in Go. It offers Qdrant-compatible API endpoints, HNSW indexing for blazing-fast Approximate Nearest Neighbor (ANN) search, and persistent local storage via BoltDB.
In the era of Local AI, desktop applications, and edge computing, you don't always need a heavy, distributed vector cluster like Milvus or Qdrant. GoVector is designed to be the SQLite for Vectors - a lightweight, high-performance solution that can be embedded directly into your application.
π Core Features¶
- Pure Go & CGO-Free: Cross-compile to anywhere (Windows, macOS, Linux, edge devices) without messy C/C++ dependencies
- Qdrant Compatible API: Drop-in replacement for Qdrant with the same REST API endpoints
- High Performance: Optimized for single-node performance, supporting millions of vectors with sub-millisecond search latency
- HNSW Indexing: Industrial-grade graph-based index for O(log N) search complexity, enabled by default
- Persistent Storage: Uses BoltDB and Protocol Buffers for ultra-fast persistence, data survives restarts
- Advanced Filtering: Support for payload filtering (Exact, Range, Prefix, Regex, Contains) just like Qdrant
- SQ8 Quantization: Built-in 8-bit scalar quantization to reduce disk footprint for large-scale data
- Dual Modes: Embedded library (zero network overhead) or standalone microservice with REST API
- Unified CLI & TUI: Powerful command-line interface with interactive Terminal User Interface
π Quick Links¶
- Quick Start - Get started with GoVector in minutes
- CLI Guide - Command-line interface usage
- Embedded Mode - Use GoVector as a library in your Go application
- Microservice Mode - Run GoVector as a standalone server
- API Reference - Complete API documentation
- Architecture Overview - Understand GoVector's architecture
ποΈ Architecture¶
GoVector's architecture consists of several core components:
- Storage Engine: Uses
go.etcd.io/bboltwith Protocol Buffers for persistent storage - Index Module: Implements HNSW (Hierarchical Navigable Small World) and Flat indexes
- Collection Management: Provides namespace isolation and CRUD operations for collections
- API Layer: Offers both Go library API and HTTP REST API compatible with Qdrant
- Quantization Module: Implements SQ8 quantization for memory optimization
π License¶
GoVector is licensed under the MIT License. See LICENSE for details.
π Useful Links¶
- GitHub Repository
- Go Documentation
- Qdrant Documentation - For API compatibility reference