August 23, 2026 · By YasKad
alibaba/zvec

Zvec: local vector search without a separate server

alibaba/zvec · 16,005★ · 1,004 forks

Everything worth knowing about alibaba/zvec: an open-source vector database embedded in the application’s own process, for semantic, full-text, and hybrid search.


What Zvec is

Zvec is a vector database library that runs inside the application’s process. Its proposal is to avoid a standalone vector service: it installs as an SDK, opens a collection at a local path, and offers insertion and querying from within the program itself.

The README describes it as software tested inside Alibaba Group and aimed at low-latency similarity search with minimal installation. The official site illustrates concrete uses: retrieval-augmented generation, image search, and code search.

Abstract representation of local persistence and in-process memory, showing a luminous, neon-outlined application window containing a secure, glowing data vault. A protective, futuristic energy shield surrounds the vault, symbolizing crash protection and isolated local data.

Origin: an embedded alternative to the vector server

The alibaba/zvec repository was created on December 5, 2025, per the GitHub API.

The retrievable public attribution is Alibaba: the repository belongs to its organization, the README says it was tested inside the group, and the site publishes the contact zvec@alibaba-inc.com.

No official entry identifying a named creator or a more detailed launch narrative was found. There is an early-distribution signal: the “Show HN” submission from the zvec account, on January 29, 2026, was presented as “the SQLite of vector databases,” but got 7 points and no comments; that credits the launch message, not an external review.

Representation of the "SQLite of vector databases" philosophy, showing a sleek, glowing dark-mode application terminal directly embedding a miniature, luminous database core within its own architecture. Neon blue and green data pathways connect the code interface to local storage, bypassing traditional external server networks.

The product tension is explicit: instead of deploying and operating a separate service for vectors, Zvec argues the application should load the database locally. Its page phrases this as running “inside your application” with no external services.

Philosophy and principles

  • Local and embedded: the collection lives at a path the application chooses; no server needs to start for the basic example.
  • Operational simplicity: the README promises immediate install and use, with no mandatory initial configuration.
  • Combinable search: it combines vector similarity, full-text, and structured filters in one hybrid query.

Hybrid search visualization, featuring a dark-mode holographic interface combining three glowing data streams: neon magenta vector similarity spheres, bright cyan full-text search characters, and structured yellow geometric filter grids. The streams merge into a single, unified search result beam.

  • Persistence over volatility: it uses write-ahead logging (WAL), which the project presents as protection against a process crash or power loss.

Abstract, ultra-detailed digital illustration of write-ahead logging (WAL) and data persistence. A glowing, transparent data ledger hovers above a dark, futuristic storage drive, with luminous neon light beams recording data transactions before committing them to disk.

  • Performance with context: the project publishes its own measurements, but community debate makes clear that performance comparisons depend on the dataset, recall, hardware, and configuration.

How it works

An application defines a CollectionSchema, creates or opens a collection with zvec.create_and_open(path=..., schema=...), inserts zvec.Doc objects, and calls collection.query(...) with the vector field and topk. The example’s result is a list ordered by relevance.

Stated capabilities include dense and sparse vectors, multi-vector queries, indexes ranging from in-memory to on-disk, full-text search, filters, and hybrid indexes. Under concurrent access, the README allows several processes to read the same collection, but reserves writing to a single process.

The v0.6.0 release, published July 20, 2026, added group-by search, optional random rotation for INT8/INT4 quantization, full-text analyzer improvements, and a C API for DiskANN.

Official and semi-official status

Zvec is an official Alibaba project in the verifiable sense that it lives at alibaba/zvec, its official domain and email use the Alibaba brand, and the README places it within the group.

No evidence was found of acceptance into an official provider marketplace or of external certification. The official distributions are documented: PyPI for Python, npm for Node.js, and official links for Go, Rust, and Dart/Flutter. That eases its consumption as a library, but doesn’t amount to a standard designation or an independent validation of its performance claims.

The ecosystem

Linked SDKs and tools

The README links official SDKs for Python, Node.js, Go, Rust, and Dart/Flutter, plus zvec-ai/zvec-studio, a visual tool for exploring data and debugging queries without code.

Futuristic, multi-language SDK network visualization. A central glowing "Zvec" core emits neon data tendrils to floating holographic icons representing Python, Node.js, Go, Rust, and Dart/Flutter. Dark-mode cyberpunk aesthetic, interconnected nodes, luminous cyan and purple neon accents.

The GitHub repository search retrieved during this investigation also identifies these zvec-ai repositories:

  • zvec-ai/zvec-rust, the Rust binding: 19 stars.
  • zvec-ai/zvec-go, the Go binding: 22 stars.
  • zvec-ai/zvec-node, Node.js bindings: 11 stars.
  • zvec-ai/zvec-dart, Dart and Flutter integration: 3 stars.
  • zvec-ai/zvec-mcp-server, an MCP server described as official: 7 stars.
  • zvec-ai/zvec-agent-skills, official skills for AI agents: 12 stars.
  • zvec-ai/zvec-web, a web interface and documentation portal: 3 stars.

The figures above come from the August 12, 2026 GitHub search and don’t prove compatibility or support for each repository.

High-tech visual data exploration interface, depicting "Zvec Studio" as a dark-mode holographic dashboard. The interface displays glowing 3D vector clusters, interactive query debugging panels, and floating geometric data points in a dark, cyberpunk environment.

Community extensions and forks

The search also found igobypenn/zvec-rust-binding, community Rust bindings (24 stars), and crazy-goat/php-zvec, PHP bindings whose description presents it as a native or FFI extension (2 stars). mcncarl/agent-memory-vault claims to use Zvec and SQLite for shared memory across Claude Code and Codex (265 stars); it’s an integration, not an official component.

The forks query sorted by stars returned copies sharing the original project’s description; the most starred, ochafik/zvec, had 3 stars. No documentation was found to justify classifying them as distinct ports or translations. The repository itself does include README_CN.md, a Chinese translation maintained within the project.

Repo numbers

Measured: August 12, 2026, GitHub API.

MetricValue
Stars15,430
Forks976
Real subscribers71
Open issues per the API66
Primary languageC++
LicenseApache-2.0
CreatedDecember 5, 2025
Latest releasev0.6.0, July 20, 2026

The top contributors returned by the API, by contribution count, were egolearner (61), JalinWang (43), feihongxu0824 (42), zhourrr (38), and Cuiyus (36). open_issues_count can include open pull requests; that’s why it doesn’t exclusively represent issues. Likewise, watchers_count in the general response mirrors the star count, so subscribers_count is reported as real subscribers.

How to contribute

The contributing guide recommends Linux for development and measurements, 64-bit Python 3.10–3.14, CMake between 3.26 and 4.0, and a C++17-compatible compiler. The documented bootstrap is:

git clone --recursive https://github.com/alibaba/zvec.git
cd zvec
pip install -e ".[dev]"
python -c "import zvec; print('Success!')"

If --recursive was omitted, the guide itself prescribes git submodule update --init --recursive. Tests run with pytest python/tests/ -v; coverage uses pytest python/tests/ --cov=zvec --cov-report=term-missing.

To submit changes, fork the repository, create a feat/..., fix/..., or docs/... branch, check tests and lint, open a PR against main, and link the related issue. PRs must provide coverage for new behavior, documentation where applicable, and an explanation of non-obvious decisions.

Futuristic developer workspace setup illuminated by glowing dark-mode terminal screens. The screens display C++ and Python code structures, Git branches, and testing terminal outputs. A sleek, cyberpunk computer rig sitting on a dark desk with neon RGB lighting.

How the community received it

The Hacker News thread 47000535, submitted by dvrp, reached 226 points and 45 comments. There, simonw noted that Zvec’s own measurements showed it seven times ahead of Pinecone in queries per second, but asked for independent verification and a technical explanation of the result. That’s a concrete criticism of self-reported benchmarks’ sufficiency, not a measured rebuttal.

ashvardanian objected that 8,000 queries per second with ten million vectors seemed unimpressive in that context and cited their own higher results with USearch on larger datasets. The author identified as luoxiaojian replied that their VectorDBBench comparison matched or exceeded the previous leader’s recall on comparable hardware, and acknowledged that self-reported figures have limits.

Dynamic, cyberpunk-themed benchmark battle visualization. Two glowing data streams racing through a dark digital void: one stream labeled with neon magenta vector nodes (representing Zvec) moving at high speed, and another stream of neon blue cubes (representing Pinecone/USearch). High-speed data transfer aesthetic, motion blur effects, neon lighting.

The same thread contains a practical observation from antirez: they stated that Redis Vector Sets can reach 20,000–50,000 queries per second in memory, depending on hardware. That’s their own experience, not a controlled comparison with Zvec.

No retrievable evidence was obtained from Reddit: the API returned a network block page. No verifiable results from Product Hunt, X, videos, podcasts, or Hashnode articles were retrieved during this run either; that isn’t inferred to mean they don’t exist. The Dev.to API did return an article by obataka, “Postmortem: silent data loss in an in-process vector store,” published July 21, 2026; its description identifies a problem tied to calling optimize() after an unclean recovery, but it wasn’t used as a general conclusion without retrieving the full text.

Zvec vs. other approaches

ProposalVerifiable relationshipLimit of the comparison
PineconeZvec’s own benchmark uses it as a reference in the Hacker News comment.Pinecone’s full methodology wasn’t retrieved; no general performance advantage is concluded.
USearchashvardanian used it in the thread as a performance counterpoint, and Zvec’s author responded by mentioning it.These are participant claims; they don’t constitute an independent benchmark between the two.
Redis Vector Setsantirez mentioned it as an in-memory alternative during the discussion.The thread doesn’t demonstrate functional equivalence, migration, or superiority of either option.

Zvec’s verifiable difference from those services and libraries isn’t a universal score: its documentation emphasizes the embedded model, the local collection, the WAL, and the combination of vector, text, and filtered search.

Quick-start guide

Installation and first run

For 64-bit Python between 3.10 and 3.14, the official install is:

pip install zvec

For Node.js it’s npm install @zvec/zvec; for Rust, cargo add zvec-rust; and for Flutter, flutter pub add zvec. The README states support for Linux x86_64/ARM64, macOS ARM64, and Windows x86_64.

The first run doesn’t require a daemon: running zvec.create_and_open(path="./zvec_example", schema=schema) creates or opens the collection at that path.

Common workflows

  1. Local semantic search: define a VectorSchema, create the collection, insert zvec.Doc, and call collection.query(zvec.Query(...), topk=10).
  2. Persisting a store alongside an application: choose a local path in create_and_open; the WAL is the documented mechanism for preserving changes through a crash.
  3. Combining intent and conditions: use the documented hybrid search to merge similarity, full-text, and structured filters.
  4. Inspecting data without coding: use Zvec Studio, which the README recommends for exploring data and debugging queries.

Essential configuration

  • path in create_and_open: the local storage path for the collection.
  • CollectionSchema and VectorSchema: collection name, field, type, and vector dimension.
  • topk in query: the number of results requested.
  • Index type: the documentation describes options scaling from memory to disk; choose based on data and deployment.
  • Build options: when developing from source, CMAKE_BUILD_TYPE, CMAKE_GENERATOR, and ENABLE_SKYLAKE_AVX512 control compilation, generator, and AVX-512 optimization.

Common pitfalls and fixes

  • Cloning without submodules: run git submodule update --init --recursive.
  • Attempting writes from several processes: the README states concurrent reads but exclusive single-process writes; centralize writes or respect that exclusivity.
  • Interpreting QPS without context: the HN debate shows recall, size, distribution, hardware, and metric all matter; reproduce the methodology before extrapolating benchmarks.
  • Using an incompatible Python: install with 64-bit Python within the documented version range.

Integrations and migration

The linked official SDKs cover Python, Node.js, Go, Rust, and Dart/Flutter. For AI agents, the zvec-ai ecosystem includes an MCP server and official skills; for visual administration, Zvec Studio. No official migration guide from Pinecone, USearch, Redis, or another vector database was found; so no export or import commands are invented.

Use cases

  • Retrieval-augmented generation, code, or image search applications that need vector search without deploying a database-as-a-service can embed the collection in the process itself.
  • Teams needing to mix semantic recall, keywords, and filters can use the documented hybrid search instead of assembling those three layers separately.
  • Desktop products, CLI tools, notebooks, and edge deployments are natural audiences for the embedded model, which the README says can run wherever the code runs.
  • Maintainers of agent applications can evaluate the ecosystem’s MCP, skills, and bindings repositories, but should check their compatibility before adopting them, since search results don’t constitute a support guarantee.

Resources


Note: this article combines the project’s README and contributing guide, the GitHub API, a Hacker News thread, and community searches gathered on August 12, 2026. Figures change over time.

Comments