Skip to content
/ zvec Public
forked from alibaba/zvec

A lightweight, lightning-fast, in-process vector database

License

Notifications You must be signed in to change notification settings

salmanmkc/zvec

 
 

Repository files navigation

zvec logo

Linux x64 CI Linux ARM64 CI macOS ARM64 CI
Code Coverage PyPI Release Python Versions License

🚀 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.

💫 Features

  • 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.

📦 Installation

Requirements: Python 3.10 - 3.12

pip install zvec
npm install @zvec/zvec

✅ Supported Platforms

  • Linux (x86_64, ARM64)
  • macOS (ARM64)

🛠️ Building from Source

If you prefer to build Zvec from source, please check the Building from Source guide.

⚡ One-Minute Example

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)

📈 Performance at Scale

Zvec delivers exceptional speed and efficiency, making it ideal for demanding production workloads.

Zvec Performance Benchmarks

For detailed benchmark methodology, configurations, and complete results, please see our Benchmarks documentation.

🤝 Join Our Community

Stay updated and get support — scan or click:

💬 DingTalk
DingTalk QR Code
📱 WeChat
WeChat QR Code
🎮 Discord
Join Server
🐦 X (Twitter)
Follow @zvec_ai

❤️ Contributing

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!

About

A lightweight, lightning-fast, in-process vector database

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 81.5%
  • SWIG 8.4%
  • Python 7.6%
  • C 1.5%
  • CMake 1.0%
  • ANTLR 0.0%