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.

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.

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.

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

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

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.

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.
| Metric | Value |
|---|---|
| Stars | 15,430 |
| Forks | 976 |
| Real subscribers | 71 |
| Open issues per the API | 66 |
| Primary language | C++ |
| License | Apache-2.0 |
| Created | December 5, 2025 |
| Latest release | v0.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.

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.

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
| Proposal | Verifiable relationship | Limit of the comparison |
|---|---|---|
| Pinecone | Zvec’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. |
| USearch | ashvardanian 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 Sets | antirez 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
- Local semantic search: define a
VectorSchema, create the collection, insertzvec.Doc, and callcollection.query(zvec.Query(...), topk=10). - 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. - Combining intent and conditions: use the documented hybrid search to merge similarity, full-text, and structured filters.
- Inspecting data without coding: use Zvec Studio, which the README recommends for exploring data and debugging queries.
Essential configuration
pathincreate_and_open: the local storage path for the collection.CollectionSchemaandVectorSchema: collection name, field, type, and vector dimension.topkinquery: 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, andENABLE_SKYLAKE_AVX512control 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
- Repository: https://github.com/alibaba/zvec
- Documentation and installation: https://zvec.org/en/docs/db/quickstart/
- Index documentation: https://zvec.org/en/docs/db/concepts/vector-index/
- Official benchmarks: https://zvec.org/en/docs/db/benchmarks/
- Releases and changes: https://github.com/alibaba/zvec/releases
- PyPI: https://pypi.org/project/zvec/
- npm: https://www.npmjs.com/package/@zvec/zvec
- Official skills: https://github.com/zvec-ai/zvec-agent-skills
- Official MCP server: https://github.com/zvec-ai/zvec-mcp-server
- Zvec Studio: https://github.com/zvec-ai/zvec-studio
- Community: https://discord.gg/rKddFBBu9z
- Conversations: https://news.ycombinator.com/item?id=47000535
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