๐ Quickstart | ๐ Home | ๐ Docs | ๐ Benchmarks | ๐ฎ Discord | ๐ฆ X (Twitter)
Zvec is an open-source, in-process vector database โ lightweight, lightning-fast, and designed to embed directly into applications. Built on Proxima (Alibaba's battle-tested vector search engine), it delivers production-grade, low-latency, scalable similarity search with minimal setup.
- Blazing Fast: Searches billions of vectors in milliseconds.
- Simple, Just Works: Install and start searching in seconds. No servers, no config, no fuss.
- Dense + Sparse Vectors: Work with both dense and sparse embeddings, with native support for multi-vector queries in a single call.
- Hybrid Search: Combine semantic similarity with structured filters for precise results.
- Runs Anywhere: As an in-process library, Zvec runs wherever your code runs โ notebooks, servers, CLI tools, or even edge devices.
- Single-File Export: Pack any collection into a single
.zvecpackfile for portable, read-only inference.
Requirements: Python 3.10 - 3.12
pip install zvecnpm install @zvec/zvec- Linux (x86_64, ARM64)
- macOS (ARM64)
If you prefer to build Zvec from source, please check the Building from Source guide.
import zvec
# Define collection schema
schema = zvec.CollectionSchema(
name="example",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),
)
# Create collection
collection = zvec.create_and_open(path="./zvec_example", schema=schema)
# Insert documents
collection.insert([
zvec.Doc(id="doc_1", vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}),
zvec.Doc(id="doc_2", vectors={"embedding": [0.2, 0.3, 0.4, 0.1]}),
])
# Search by vector similarity
results = collection.query(
zvec.VectorQuery("embedding", vector=[0.4, 0.3, 0.3, 0.1]),
topk=10
)
# Results: list of {'id': str, 'score': float, ...}, sorted by relevance
print(results)Export any collection into a single, portable .zvecpack file for read-only inference โ ideal for deployment, sharing, or embedding in containers.
import zvec
zvec.init()
# Create and populate a collection
schema = zvec.CollectionSchema(
name="my_collection",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),
)
col = zvec.create_and_open("./my_collection", schema)
col.insert([
zvec.Doc(id="doc_1", vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}),
zvec.Doc(id="doc_2", vectors={"embedding": [0.2, 0.3, 0.4, 0.1]}),
])
col.flush()
# Export to a single file
zvec.export_collection("./my_collection", "./my_collection.zvecpack")
# Open the packed file โ read-only, zero setup
packed = zvec.open("./my_collection.zvecpack")
packed.fetch(["doc_1"]) # same API as a regular collectionZvec delivers exceptional speed and efficiency, making it ideal for demanding production workloads.
For detailed benchmark methodology, configurations, and complete results, please see our Benchmarks documentation.
Stay updated and get support โ scan or click:
|
๐ฌ DingTalk
|
๐ฑ WeChat
|
๐ฎ Discord
Join Server
|
๐ฆ X (Twitter)
Follow @zvec_ai
|
We welcome and appreciate contributions from the community! Whether you're fixing a bug, adding a feature, or improving documentation, your help makes Zvec better for everyone.
Check out our Contributing Guide to get started!

