Alibaba lightweight in-process vector database
Go to file
Maxime Grenu e3e8b76ddb
feat(examples): add custom HTTP embedding example for LM Studio / Ollama (#149)
* feat(examples): add custom HTTP embedding example for LM Studio / Ollama

* feat(extension): promote HTTPDenseEmbedding to first-class extension

Move the HTTP embedding implementation from the example script into
python/zvec/extension/ as HTTPDenseEmbedding, inheriting from
DenseEmbeddingFunction. The example now imports from zvec.extension
instead of defining the class inline.

Signed-off-by: Maxime <maxime@cluster2600.com>
Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>

* fix(examples): resolve ruff lint errors in HTTP embedding example

Move zvec imports to top-level, add noqa for print statements,
replace os.path.exists with pathlib, fix import sorting.

Signed-off-by: Maxime <maxime@cluster2600.com>
Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>

* style: apply ruff formatter

Signed-off-by: Maxime <maxime@cluster2600.com>
Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>

* ci: retrigger CI (flaky macOS C++ test)

The vector_column_indexer_test failure is a known flaky assertion in
hnsw_streamer_entity.h, unrelated to Python-only changes in this PR.

Signed-off-by: Maxime <maxime@cluster2600.com>
Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>

* chore: remove custom HTTP embedding example

Per maintainer feedback, examples requiring an external LLM server
belong in the zvec-web project rather than in this repository.

Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>

---------

Signed-off-by: Maxime <maxime@cluster2600.com>
Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>
2026-03-03 21:13:54 +08:00
.github fix: fix main ci only trigger linux64 platform (#187) 2026-02-28 16:46:07 +08:00
cmake fix[build]: default build from source with -march=native (#184) 2026-02-28 12:21:37 +08:00
examples/c++ fix: add c++ example to macos/linux ci (#86) 2026-02-09 23:31:56 +08:00
python feat(examples): add custom HTTP embedding example for LM Studio / Ollama (#149) 2026-03-03 21:13:54 +08:00
scripts Initial commit 2025-12-30 11:02:17 +08:00
src fix: Replace VLAs with std::vector for MSVC compatibility and stack safety (#190) 2026-03-03 10:07:21 +08:00
tests fix: Replace VLAs with std::vector for MSVC compatibility and stack safety (#190) 2026-03-03 10:07:21 +08:00
thirdparty build: disable rocksdb -arch=native (#183) 2026-02-28 11:19:44 +08:00
tools chore: switch core tools to LOG_ERROR instead of cerr for better traceability when errors occur (#80) 2026-02-09 19:36:14 +08:00
.clang-format Initial commit 2025-12-30 11:02:17 +08:00
.gitignore feat: refact cpp sdk (#27) 2026-01-21 20:05:42 +08:00
.gitmodules Initial commit 2025-12-30 11:02:17 +08:00
.pre-commit-config.yaml chore: enable the conventional-pre-commit run sucess and update to latest version (#111) 2026-02-25 18:03:20 +08:00
CMakeLists.txt feat: refact cpp sdk (#27) 2026-01-21 20:05:42 +08:00
CODE_OF_CONDUCT.md Initial commit 2025-12-30 11:02:17 +08:00
CONTRIBUTING.md fix(docs): fix typo in README align attr and Python version in CONTRIBUTING (#150) 2026-02-20 10:06:48 +08:00
LICENSE Initial commit 2025-12-30 11:02:17 +08:00
README.md feat(ci): ci workflow with github-hosted runner (#171) 2026-02-26 10:47:55 +08:00
pyproject.toml feat: add Python 3.13 and 3.14 support (#164) 2026-02-28 14:37:43 +08:00

README.md

zvec logo

Code Coverage Main PyPI Release Python Versions License

alibaba%2Fzvec | Trendshift

🚀 Quickstart | 🏠 Home | 📚 Docs | 📊 Benchmarks | 🎮 Discord

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

Python

Requirements: Python 3.10 - 3.12

pip install zvec

Node.js

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 📱 WeChat 🎮 Discord
Discord
Scan to join Scan to join Click to join

❤️ 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!