# asg017/sqlite-vec

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/asg017-sqlite-vec).**

6,961 stars · 282 forks · C · apache-2.0

## Links

- GitHub: https://github.com/asg017/sqlite-vec
- awesome-repositories: https://awesome-repositories.com/repository/asg017-sqlite-vec.md

## Topics

`sqlite` `sqlite-extension`

## Description

sqlite-vec is a C-based vector library and SQLite extension that adds virtual tables for storing and querying high-dimensional embeddings. It functions as a database plugin for performing nearest neighbor searches using distance metrics such as L2, cosine, and Hamming distance.

The project provides a portable embedding store that supports deployment across Android, iOS, desktop environments, and web browsers via WebAssembly. It distinguishes itself by converting numerical arrays into compact binary formats and utilizing quantization to reduce the memory footprint and storage size of vector indexes.

The library covers a broad range of vector operations, including similarity querying, vector arithmetic, and data transformation. It also includes capabilities for metadata filtering, key-based index sharding, and the attachment of auxiliary data to vector records.

The extension can be integrated into projects using C, C++, Go, Ruby, and Rust, and it is compatible with Datasette and distributed SQLite environments.

## Tags

### Data & Databases

- [Vector Database Integrations](https://awesome-repositories.com/f/data-databases/database-management-systems/database-engines/vector-databases/vector-database-integrations.md) — Integrates high-dimensional embedding storage and similarity search capabilities directly into SQLite.
- [Vector Similarity Search](https://awesome-repositories.com/f/data-databases/vector-similarity-search.md) — The vector search extension identifies the most similar vectors to a target query using distance metrics and optimized scans. ([source](https://alexgarcia.xyz/sqlite-vec/features/knn.html))
- [Vector Storage](https://awesome-repositories.com/f/data-databases/local-first-storage/vector-storage.md) — Transforms numerical lists into compact binary formats for efficient storage and retrieval. ([source](https://alexgarcia.xyz/sqlite-vec/ruby.html))
- [Mobile Vector Storage](https://awesome-repositories.com/f/data-databases/mobile-vector-storage.md) — The vector search extension provides pre-compiled libraries to enable high-dimensional vector search on Android and iOS hardware. ([source](https://alexgarcia.xyz/sqlite-vec/android-ios.html))
- [Virtual Table Implementations](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-and-indexing/vector-search-indexes/virtual-table-implementations.md) — The vector search extension saves numeric vectors in virtual tables to enable efficient similarity searches. ([source](https://alexgarcia.xyz/sqlite-vec/))
- [Semantic Search](https://awesome-repositories.com/f/data-databases/semantic-search.md) — Implements semantic search by finding the most similar data based on mathematical distance.
- [SQLite Extensions](https://awesome-repositories.com/f/data-databases/sqlite-extensions.md) — Functions as a SQLite extension that adds virtual tables for storing and querying high-dimensional embeddings.
- [Native Extension Loading](https://awesome-repositories.com/f/data-databases/sqlite-extensions/native-extension-loading.md) — Implements a mechanism to dynamically load native C search logic as an extension into the database process.
- [Vector Database Extensions](https://awesome-repositories.com/f/data-databases/vector-database-extensions.md) — Converts numerical arrays into a compact binary format optimized for integration within the database. ([source](https://alexgarcia.xyz/sqlite-vec/go.html))
- [Quantization](https://awesome-repositories.com/f/data-databases/vector-indexing/quantization.md) — The vector search extension compresses floating point elements into smaller data types to lower the memory footprint of vector indexes. ([source](https://alexgarcia.xyz/sqlite-vec/guides/scalar-quant.html))
- [Vector Quantization](https://awesome-repositories.com/f/data-databases/vector-quantization.md) — Maps floating-point vector elements into smaller data types to reduce the memory footprint of vector indexes.
- [Vector Data Conversion](https://awesome-repositories.com/f/data-databases/vector-search/vector-data-conversion.md) — The vector search extension transforms binary blobs or text into specialized numeric formats for efficient storage. ([source](https://alexgarcia.xyz/sqlite-vec/api-reference.html))
- [Virtual Tables](https://awesome-repositories.com/f/data-databases/virtual-tables.md) — Implements vector data storage as a virtual table within SQLite to manage embeddings as binary blobs.
- [Binary Serialization](https://awesome-repositories.com/f/data-databases/binary-serialization.md) — Provides tools for converting high-dimensional numerical arrays into compact binary formats for database storage.
- [Cross-Platform Embedding Stores](https://awesome-repositories.com/f/data-databases/cross-platform-embedding-stores.md) — Provides a portable storage solution for vector embeddings across Android, iOS, and desktop environments.
- [Extensibility Plugins](https://awesome-repositories.com/f/data-databases/full-text-search/extensibility-plugins.md) — The vector search extension can be added to database projects as a dedicated plugin to enable similarity search functionality. ([source](https://alexgarcia.xyz/sqlite-vec/sqlite-utils.html))
- [Go Database Bindings](https://awesome-repositories.com/f/data-databases/go-database-bindings.md) — The vector search extension provides language-specific bindings and binary drivers to embed vector search capabilities within Go applications. ([source](https://alexgarcia.xyz/sqlite-vec/go.html))
- [Payload Storage](https://awesome-repositories.com/f/data-databases/local-first-storage/vector-storage/payload-storage.md) — The vector search extension attaches large payloads to vector records for retrieval without performing separate database joins. ([source](https://alexgarcia.xyz/sqlite-vec/features/vec0.html))
- [Metadata Filtering](https://awesome-repositories.com/f/data-databases/metadata-filtering.md) — The vector search extension applies constraints to queries using indexed columns to narrow results based on specific metadata. ([source](https://alexgarcia.xyz/sqlite-vec/features/vec0.html))
- [Ruby Database Bindings](https://awesome-repositories.com/f/data-databases/ruby-database-bindings.md) — The vector search extension provides bindings for Ruby to store and query high-dimensional embeddings within database connections. ([source](https://alexgarcia.xyz/sqlite-vec/ruby.html))
- [Rust Database Bindings](https://awesome-repositories.com/f/data-databases/rust-database-bindings.md) — The vector search extension allows Rust projects to link search capabilities during the build process for native database vector operations. ([source](https://alexgarcia.xyz/sqlite-vec/rust.html))
- [Index Sharding](https://awesome-repositories.com/f/data-databases/search-indexing-technologies/search-indexing/search-and-indexing/vector-search-indexes/index-sharding.md) — The vector search extension groups vectors by specific key values to restrict searches to a subset of data. ([source](https://alexgarcia.xyz/sqlite-vec/features/vec0.html))
- [Memory-Optimized Storage](https://awesome-repositories.com/f/data-databases/vector-memory-stores/memory-optimized-storage.md) — Reduces the memory footprint and storage size of embeddings using quantization and compact binary formats.
- [Normalization and Truncation](https://awesome-repositories.com/f/data-databases/vector-search/normalization-and-truncation.md) — The vector search extension slices vectors to specific dimensions and normalizes the result for embedding support. ([source](https://alexgarcia.xyz/sqlite-vec/guides/matryoshka.html))
- [Vector Arithmetic](https://awesome-repositories.com/f/data-databases/vector-search/vector-arithmetic.md) — The vector search extension computes the sum, difference, or mean of vectors to derive new coordinates from existing data. ([source](https://alexgarcia.xyz/sqlite-vec/api-reference.html))

### Operating Systems & Systems Programming

- [C Libraries](https://awesome-repositories.com/f/operating-systems-systems-programming/c-libraries.md) — Ships as a low-level C library for converting, quantizing, and storing numerical vectors.

### Scientific & Mathematical Computing

- [Distance Metrics](https://awesome-repositories.com/f/scientific-mathematical-computing/distance-metrics.md) — Computes similarity using L2, cosine, and Hamming distance metrics to rank and retrieve nearest neighbors.

### Artificial Intelligence & ML

- [Local On-Device AI](https://awesome-repositories.com/f/artificial-intelligence-ml/ai-application-frameworks/local-on-device-ai.md) — Enables the building of AI-powered tools that perform vector search on-device or in the browser.

### Web Development

- [Wasm Search Modules](https://awesome-repositories.com/f/web-development/dynamic-loading-strategies/binary-module-loaders/webassembly-module-loaders/wasm-search-modules.md) — Provides a compiled WebAssembly module that enables vector storage and similarity search in the browser.
- [WebAssembly Compilation](https://awesome-repositories.com/f/web-development/webassembly-compilation.md) — Compiles core search logic into WebAssembly to enable vector operations directly within web browsers.
- [WebAssembly Frameworks](https://awesome-repositories.com/f/web-development/webassembly-frameworks.md) — The vector search extension can be compiled into WebAssembly to run vector search capabilities directly within a web browser. ([source](https://alexgarcia.xyz/sqlite-vec/wasm.html))

### Part of an Awesome List

- [Retrieval Augmented Generation](https://awesome-repositories.com/f/awesome-lists/ai/retrieval-augmented-generation.md) — Vector search extension for SQLite databases.
- [Vector Databases](https://awesome-repositories.com/f/awesome-lists/data/vector-databases.md) — Lightweight vector search extension for SQLite databases.
