This is an open source project and everyone is allowed to use it in whatever way they want. Absolutely no restrictions whatsoever.
Feel free to:
- Use it in commercial projects
- Modify and distribute
- Create derivative works
- Use it for research and education
- Integrate it into your applications
If you need support or have questions, please send an email to: vxd@launchxlabs.ai
VXD implements cutting-edge vector database technology with the following advanced features:
- Dense Vector Search: High-performance HNSW (Hierarchical Navigable Small World) algorithm for approximate nearest neighbor search
- Sparse Vector Search: BM25-style sparse vector retrieval for keyword-based search
- Hybrid Retrieval: Combines dense and sparse search results for optimal relevance
- Ultra Low RAM Usage: Innovative memory management techniques that minimize RAM consumption
- Level-based Storage: Base layer vectors stored in LMDB for persistence, upper layers kept in memory
- Thread-local Vector Caching: Safe and efficient vector data access patterns
- Dynamic Memory Allocation: Efficient memory usage that scales with your data
- FP16 Support: Half-precision floating-point for reduced memory footprint
- Multi-threading: Concurrent search and insertion operations
- ACID Transactions: Reliable data consistency with LMDB backend
- Configurable Parameters: Tunable M, ef_construction, and other HNSW parameters
- Delete Operations: Soft deletes with proper cleanup
- Index Persistence: Save and load indices to/from disk
- Hybrid Vector Storage: Seamless integration of dense and sparse vectors
- C++17 compatible compiler (GCC, Clang, MSVC)
- CMake 3.10 or higher
- OpenSSL development libraries
- Eigen3 library (for sparse vector operations)
mkdir build && cd build
cmake ..
make -j4For debug builds:
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DVX_DEBUG=ON ..
make -j4./vxdSet your data directory path:
export VXD_DATA_DIR=<your_data_directory>
./vxdVXD_DATA_DIR: Directory where VXD will store index files and dataVXD_PORT: HTTP server port (default: 8080)VXD_HOST: HTTP server host (default: 0.0.0.0)
# Set data directory
export VXD_DATA_DIR=/path/to/your/data
# Run VXD server
./vxdThe server will start and listen for HTTP requests on the configured port (default: 8080).
VXD provides a RESTful HTTP API for vector operations:
POST /index/{index_id}/vectors- Add vectors to an indexPOST /index/{index_id}/search- Search for similar vectorsDELETE /index/{index_id}/vectors/{vector_id}- Delete a vectorGET /index/{index_id}/stats- Get index statisticsPOST /index/{index_id}/hybrid- Add hybrid vectors (dense + sparse)POST /index/{index_id}/hybrid/search- Hybrid search
- HNSW Algorithm: Modified for hybrid operations and memory efficiency
- LMDB Storage: Persistent storage for base layer vectors
- Vector Storage: Efficient vector data management
- ID Mapper: String to numeric ID mapping with LMDB persistence
- Filter System: Advanced filtering capabilities with Roaring bitmaps
- WAL (Write-Ahead Log): Transaction logging for recovery
- Base layer (level 0) vectors stored in LMDB
- Upper layer vectors cached in memory
- Thread-local storage for safe concurrent access
- Automatic memory cleanup and garbage collection
VXD supports various configuration parameters in settings.hpp:
DEFAULT_M: Number of connections per node in HNSW graphDEFAULT_EF_CONSTRUCT: Size of dynamic candidate list during constructionMAX_EXTRA_NEIGHBORS: Additional neighbors beyond M for qualityEARLY_EXIT_BUFFER_*: Early termination thresholds for search optimization
Since this is fully open source with no restrictions, contributions are welcome! Feel free to:
- Submit pull requests
- Report issues
- Suggest improvements
- Add new features
For support, questions, or collaboration opportunities: Email: vxd@launchxlabs.ai
VXD - Powering the next generation of vector search applications with hybrid capabilities and ultra-efficient memory management.