Back to projects

veclite

SQLite for vectors — embedded AI memory engine

No server. No infra. Just a file and a Rust library.

View on GitHub

Demo

terminal
$ veclite insert --text 'hello world'
> embedding... done
> stored id=1
>
$ veclite search --query 'greetings'
> id=1 score=0.97 'hello world'
1 result in 0.4ms

Problem

Adding semantic search to a small project means spinning up Pinecone, Weaviate, or a Postgres extension. That's a server, a connection pool, and infra for something that should be as simple as opening a file.

What it is

Veclite is an embedded vector database written in Rust. It lives inside your process and persists to a single file — same mental model as SQLite, but for vector search.

  • insert text or raw embeddings
  • approximate nearest-neighbour search via HNSW
  • single file, zero dependencies at runtime
  • Rust library or CLI

Features

Embedded

No server. No daemon. Runs inside your process.

File-based

Single file storage — deploy, copy, and backup trivially.

HNSW Index

Fast approximate nearest-neighbour search via HNSW.

Rust Core

Memory-safe, zero-overhead, no GC pauses.

Architecture

Insert / Query
Embedding Layer
HNSW Index
File Storage
Result

Query example

Input

veclite search --query "machine learning optimizer" --k 3

Output

id=12  score=0.94  "Adam optimizer and learning rate scheduling"
id=7   score=0.91  "SGD momentum and weight decay"
id=23  score=0.88  "gradient clipping strategies"

Add to your Rust project

cargo add veclite

Why I Built This

I wanted semantic search in a local tool without standing up a vector database. Every option was either too heavy or too opinionated.

Veclite is the SQLite of vector stores — embed it, forget the infra.

Repository

View on GitHub

Links