A deep-dive into the in-process vector database that's taking the AI world by storm. 11.5k GitHub stars and counting.
Zvec is an open-source, in-process vector database built by Alibaba's Tongyi Lab and released in February 2026. Think of it as the SQLite of vector databases — it runs entirely inside your application process. No server. No daemon. No network calls. Just pip install zvec and you're running production-grade vector search.
It's built on Proxima, Alibaba's battle-tested internal vector search engine that handles billions of queries daily across Alibaba's search, recommendation, and advertising systems.
License: Apache-2.0
GitHub Stars: ~11.5k
Latest Release: v0.5.0 (June 12, 2026)
Vector databases power modern AI applications. When an app finds products similar to what you bought, or documents related to your question, a vector database is working in the background.
The problem: Good vector databases have been either:
Zvec's answer: One line of code. Zero configuration. Runs anywhere your code runs.
pip install zvec
# Requires Python 3.10–3.14
npm install @zvec/zvec
go get github.com/alibaba/zvec-go
[dependencies]
zvec = "0.5"
flutter pub add zvec
pip install zvec-studio
Supported Platforms: Linux (x86_64, ARM64) · macOS (ARM64) · Windows (x86_64) · Android · iOS · RISC-V
import zvec
# 1. Define your schema
schema = zvec.CollectionSchema(
name="movies",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 128),
)
# 2. Create the collection (it's just a local directory)
collection = zvec.create_and_open(path="./movies_db", schema=schema)
# 3. Insert documents
collection.insert([
zvec.Doc(id="movie_1", vectors={"embedding": [0.1, 0.2, ..., 0.4]}),
zvec.Doc(id="movie_2", vectors={"embedding": [0.2, 0.3, ..., 0.1]}),
])
# 4. Search by vector similarity
results = collection.query(
zvec.VectorQuery("embedding", vector=[0.4, 0.3, ..., 0.1]),
topk=10
)
print(results)
# Returns: list of {'id': str, 'score': float, ...} sorted by relevance
That's it. No servers, no containers, no cloud accounts.
The latest release is a massive upgrade:
Native keyword-based full-text search — attach an FTS index to any string field and query it with natural-language or structured expressions. No Elasticsearch or external engine needed.
# Create FTS index on a string field
collection.create_index("title", zvec.FTSIndexParam())
# Query with full-text
results = collection.query(
zvec.TextQuery("title", "quantum computing"),
topk=10
)
Combine full-text search + vector similarity + scalar filters + sparse vectors in a single MultiQuery. This is where Zvec really shines — you get the precision of semantic search with the keyword-matching power of traditional search.
results = collection.query(
zvec.MultiQuery([
zvec.VectorQuery("embedding", vector=[0.1, 0.2, ...]),
zvec.TextQuery("title", "machine learning"),
zvec.Filter("year > 2020"),
]),
topk=20,
rerank=True # Built-in RRF reranking
)
A new on-disk index that keeps the bulk of the index on disk instead of RAM. This dramatically cuts memory costs for billion-scale datasets, making large-scale ANN search feasible on memory-constrained machines.
A visual management tool to browse data, test queries, and manage schemas without writing code. Install via pip install zvec-studio or download the desktop app.
zvec-go): cgo bindings with prebuilt libraries for all major platformszvec-rust): Safe, idiomatic bindings with RAII resource management and builder APIsTested on the Cohere 10M vector dataset:
| Metric | Value |
|---|---|
| Total Vectors Indexed | 10,000,000 |
| Index Build Time | ~1 hour |
| Queries per Second (QPS) | 8,500+ |
| Search Latency | Milliseconds at billion-vector scale |
Zvec runs directly in your application's memory space. No RPC, no network overhead, no daemon management. This means:
Support both dense embeddings (like OpenAI's text-embedding-3) and sparse embeddings (like SPLADE), with multi-vector queries.
Write-Ahead Logging (WAL) guarantees persistence. Your data survives process crashes and power failures.
Multiple processes can read the same collection simultaneously. Writes are single-process exclusive — consistent and safe.
# Vector search with filters
results = collection.query(
zvec.VectorQuery("embedding", vector=[...]),
filter=zvec.Filter("price < 50 AND category = 'electronics'"),
topk=10
)
# GROUP BY style search
results = collection.query(
zvec.VectorQuery("embedding", vector=[...]),
group_by="category",
topk_per_group=5
)
Enhance LLM responses by retrieving relevant context from your knowledge base — all running locally.
Find visually or semantically similar images at scale. Perfect for e-commerce product discovery.
Find code snippets by describing wh