extension-comparison
Quick Answer
Use sqlite-vec - the current recommended extension as of 2024-2025.
sqlite-vss (the old extension) is no longer actively developed. Development effort has moved to sqlite-vec, which is easier to install, more portable, and runs anywhere SQLite runs.
The Two Extensions
sqlite-vss (Legacy - Not Recommended)
Status: No longer in active development
What it was: SQLite extension for vector similarity search based on Faiss
Key Issues:
- Only worked on Linux + MacOS (no Windows, WASM, mobile)
- Cumbersome C++ dependencies (Faiss)
- Large binaries (3MB-5MB)
- 1GB index size limit
- No GPU support (CPU-only Faiss indices)
- No mmap support (indices must fit in RAM)
- Unhealthy release cadence (last version released over a year ago)
Last Notable Release: v0.1.1
sqlite-vec (Current - Recommended)
Status: ✅ Actively developed and recommended
What it is: Pure C vector search SQLite extension with no dependencies, successor to sqlite-vss
Author: Alex Garcia (@asg017)
Sponsorship: Mozilla Builders project, with additional support from Fly.io, Turso, SQLite Cloud, and Shinkai
Latest Stable: v0.1.6 (November 20, 2024) Pre-release: v0.1.7a1, v0.1.7a2 (January 10, 2025)
Why sqlite-vec Over sqlite-vss?
Platform Support
sqlite-vss:
- ❌ Linux only
- ❌ MacOS only
- ❌ No Windows
- ❌ No WASM
- ❌ No mobile devices
sqlite-vec:
- ✅ Linux
- ✅ MacOS
- ✅ Windows
- ✅ WASM (runs in browsers)
- ✅ Raspberry Pi
- ✅ Mobile devices
Binary Size
| Extension | Binary Size |
|---|---|
| sqlite-vss | 3MB - 5MB |
| sqlite-vec | Few 100s KB |
Dependencies
| Extension | Dependencies |
|---|---|
| sqlite-vss | C++ (Faiss) - complex build |
| sqlite-vec | None - pure C |
sqlite-vec Features
Core Capabilities
-
K-Nearest Neighbor (KNN) Search
- Multiple distance metrics
- SIMD-accelerated performance
- Brute-force vector search optimized for speed
-
Vector Types
- Float vectors (standard)
- Bit vectors (32x space reduction with 1 bit per element)
-
Vector Quantization
- Compresses vector data
- Reduces storage space
- Improves query performance
- Binary quantization support
-
Matryoshka Embeddings
- Truncate vectors without significant quality loss
- Flexible dimensionality
-
Metadata Columns
- Support for metadata in vec0 virtual tables
- Announced November 2024
Performance
Dataset: 1 million vectors, 128 dimensions (sift1m)
- ✅ Fast UPDATE/INSERT/DELETE operations
- ✅ Fast queries with chunked internal storage
- ✅ Competitive with Faiss and DuckDB
- ✅ Outperforms usearch and Faiss in GIST1M dataset tests (static mode)
Optimization: Currently focused on extremely fast brute-force vector search with quantization and compression techniques
Installation
Python:
pip install sqlite-vecNode.js:
npm install sqlite-vecOther Languages: Ruby, Rust, Go support available
Platforms: macOS, Linux, Windows, WebAssembly
Use Cases
Ideal For
- ✅ Local, embedded applications
- ✅ Small-to-medium scale vector search
- ✅ OLTP workloads with fast writes
- ✅ Browser-based applications (WASM)
- ✅ Edge devices (Raspberry Pi, mobile)
- ✅ Applications already using SQLite
Not Ideal For
- ❌ Large-scale distributed search
- ❌ Millions of high-dimensional vectors
- ❌ Applications requiring ANN indexes (coming soon)
Comparison with Alternatives
| Feature | sqlite-vec | sqlite-vss | DuckDB VSS | pgvector |
|---|---|---|---|---|
| Active Development | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |
| Dependencies | None (pure C) | Faiss (C++) | None | PostgreSQL |
| Platform Support | Everywhere | Linux/Mac | Everywhere | PostgreSQL platforms |
| Binary Size | ~100s KB | 3-5 MB | N/A | Small |
| Index Type | Brute-force* | HNSW (Faiss) | HNSW | HNSW, IVFFlat |
| Quantization | ✅ Yes | ❌ No | ❌ No | ✅ Yes |
| WASM Support | ✅ Yes | ❌ No | ❌ No | ❌ No |
| Setup Complexity | Minimal | Medium | Minimal | Medium |
*ANN indexes planned for future releases
Future Roadmap
Planned Features:
- Metadata filtering
- Partitioned storage
- ANN (Approximate Nearest Neighbors) indexes for larger datasets
- Integration with cloud services (Turso, SQLite Cloud)
Migration Path
If you’re currently using sqlite-vss:
-
Evaluate your platform needs
- If you need Windows, WASM, or mobile → migrate to sqlite-vec
- If Linux/Mac only and happy with current setup → can continue short-term
-
Install sqlite-vec
Terminal window pip install sqlite-vec # Pythonnpm install sqlite-vec # Node.js -
Update your code
- API differences exist (check documentation)
- Test thoroughly before production migration
-
Benefits of migration
- Smaller binary size
- Better platform support
- Active development and updates
- Modern features (quantization, metadata)
Sources
- GitHub - asg017/sqlite-vss
- GitHub - asg017/sqlite-vec
- Introducing sqlite-vec v0.1.0
- I’m writing a new vector search SQLite Extension
- sqlite-vec v0.1.0 Released - MarkTechPost
- How sqlite-vec Works for Storing and Querying Vector Embeddings
- SQLiteVec - Docs by LangChain
- sqlite-vec PyPI
- sqlite-vec - Mozilla Builders
- GitHub Releases - sqlite-vec
Last Updated: 2025-01-10 Recommendation: Use sqlite-vec for all new projects Migration: Plan migration from sqlite-vss to sqlite-vec for existing projects