Skip to main content

VecLite: A production-grade, zero-config, single-file embedded AI memory engine

Project description

VecLite

CI Crates.io PyPI Go Reference License: MIT

VecLite is an embedded vector database. It runs in-process and stores data in a single file.

It provides exact and approximate nearest neighbor search, metadata filtering, and a vector-native SQL dialect. It is designed for applications that require vector search without operating a separate database server.

Features

  • Embedded architecture (no server required)
  • Single-file storage
  • SIMD-accelerated vector metrics (Cosine, L2, Dot Product, Manhattan)
  • HNSW indexing
  • SQL query layer
  • Hybrid search (vector similarity combined with metadata filters)
  • Cross-language support via C ABI

Language Bindings

VecLite is written in Rust. It provides native bindings for multiple languages.

Rust

The core database.

  • Status: Stable
  • Install: cargo add veclite-db

Python

Native Python module using PyO3. Releases the Global Interpreter Lock (GIL) during search operations.

  • Status: Stable
  • Install: pip install veclite-db

Go

CGO wrapper over the C ABI.

  • Status: Stable
  • Install: go get github.com/rithulkamesh/veclite/bindings/go@v1.0.9

C / C++

Standard C header and C++ RAII wrapper.

  • Status: Stable
  • Install: Copy bindings/c/veclite.h or bindings/cpp/veclite.hpp.

Zig

Zig wrapper over the C ABI.

  • Status: Experimental
  • Install: Import bindings/zig/veclite.zig.

Example

use veclite_db::VecLite;

let mut db = VecLite::open("memory.vec").unwrap();
db.insert("doc_1", vec![0.1, 0.2, 0.3], None).unwrap();

let results = db.search(vec![0.1, 0.2, 0.3]).top_k(5).execute().unwrap();

SQL Example

VecLite supports a custom SQL dialect for vector operations.

CREATE TABLE memory;
INSERT INTO memory VALUES ('doc_1', '[0.1, 0.2, 0.3]', '{"tag":"note"}');
SELECT * FROM memory WHERE metadata.tag = 'note' ORDER BY vector <-> '[0.1, 0.2, 0.3]' LIMIT 5;

Installation

Use the package manager for your target language. For the CLI and HTTP server:

cargo install veclite-cli

Status

VecLite is under active development.

Roadmap

  • SQL execution engine completion
  • Compaction and retention policies
  • Node.js bindings

License

MIT

Star History

Star History Chart

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

veclite_db-1.1.1-cp38-abi3-win_amd64.whl (612.9 kB view details)

Uploaded CPython 3.8+Windows x86-64

veclite_db-1.1.1-cp38-abi3-manylinux_2_34_x86_64.whl (891.7 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.34+ x86-64

veclite_db-1.1.1-cp38-abi3-macosx_11_0_arm64.whl (729.1 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

File details

Details for the file veclite_db-1.1.1-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: veclite_db-1.1.1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 612.9 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for veclite_db-1.1.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8d572d378a076e29b6865469521c4b628555b10d4b24569ffd0768f0d83164c3
MD5 a013b9e327e3ab731dbeec58a9c80877
BLAKE2b-256 8f80c881e46ea5cb52d4926a1ecdb7ad4d10460e2b8a85ab2362883a6939d9d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for veclite_db-1.1.1-cp38-abi3-win_amd64.whl:

Publisher: publish-pypi.yml on rithulkamesh/veclite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file veclite_db-1.1.1-cp38-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for veclite_db-1.1.1-cp38-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5f3671d1a21c3eeb82d7294805a002aebac5033d33fb5326f1d1e0965a6af5bc
MD5 d461501095b8bef933871fdd3ca8c592
BLAKE2b-256 b09e276d5b02b95e7caa6d96245a22b320cd7a09ce170503155a8a5d181347b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for veclite_db-1.1.1-cp38-abi3-manylinux_2_34_x86_64.whl:

Publisher: publish-pypi.yml on rithulkamesh/veclite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file veclite_db-1.1.1-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for veclite_db-1.1.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e21b8d9b26fe158e03982872470cc703c12fe769c35b190d58690ae7abd00298
MD5 37abc42677743a961442e0ed6300e0b6
BLAKE2b-256 52ec34f15c1da4611cbc937a9eba45b0fa1295a8c74b407d1cd294090f370457

See more details on using hashes here.

Provenance

The following attestation bundles were made for veclite_db-1.1.1-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on rithulkamesh/veclite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page