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

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

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

ExtensionBinary Size
sqlite-vss3MB - 5MB
sqlite-vecFew 100s KB

Dependencies

ExtensionDependencies
sqlite-vssC++ (Faiss) - complex build
sqlite-vecNone - pure C

sqlite-vec Features

Core Capabilities

  1. K-Nearest Neighbor (KNN) Search

    • Multiple distance metrics
    • SIMD-accelerated performance
    • Brute-force vector search optimized for speed
  2. Vector Types

    • Float vectors (standard)
    • Bit vectors (32x space reduction with 1 bit per element)
  3. Vector Quantization

    • Compresses vector data
    • Reduces storage space
    • Improves query performance
    • Binary quantization support
  4. Matryoshka Embeddings

    • Truncate vectors without significant quality loss
    • Flexible dimensionality
  5. 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:

Terminal window
pip install sqlite-vec

Node.js:

Terminal window
npm install sqlite-vec

Other 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

Featuresqlite-vecsqlite-vssDuckDB VSSpgvector
Active Development✅ Yes❌ No✅ Yes✅ Yes
DependenciesNone (pure C)Faiss (C++)NonePostgreSQL
Platform SupportEverywhereLinux/MacEverywherePostgreSQL platforms
Binary Size~100s KB3-5 MBN/ASmall
Index TypeBrute-force*HNSW (Faiss)HNSWHNSW, IVFFlat
Quantization✅ Yes❌ No❌ No✅ Yes
WASM Support✅ Yes❌ No❌ No❌ No
Setup ComplexityMinimalMediumMinimalMedium

*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:

  1. 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
  2. Install sqlite-vec

    Terminal window
    pip install sqlite-vec # Python
    npm install sqlite-vec # Node.js
  3. Update your code

    • API differences exist (check documentation)
    • Test thoroughly before production migration
  4. Benefits of migration

    • Smaller binary size
    • Better platform support
    • Active development and updates
    • Modern features (quantization, metadata)

Sources

  1. GitHub - asg017/sqlite-vss
  2. GitHub - asg017/sqlite-vec
  3. Introducing sqlite-vec v0.1.0
  4. I’m writing a new vector search SQLite Extension
  5. sqlite-vec v0.1.0 Released - MarkTechPost
  6. How sqlite-vec Works for Storing and Querying Vector Embeddings
  7. SQLiteVec - Docs by LangChain
  8. sqlite-vec PyPI
  9. sqlite-vec - Mozilla Builders
  10. 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