Zvec Vector Database: In-Process Embedded Search in C++
Zvec vector database is an open-source, in-process vector search engine from Alibaba, written in C++ and embedded directly into your app — no separate server to run. It handles dense and sparse embeddings, native full-text search, and hybrid queries that fuse vector similarity with keyword and scalar filters, with write-ahead logging for durability. SDKs ship for Python, Node.js, Go, Rust, and Dart/Flutter.
Reach for the Zvec vector database if you want embedded similarity search that lives inside your process — like SQLite for vectors — without standing up a Milvus or Qdrant server. Skip it if you need distributed, multi-node writes or a settled 1.0 API: it's at v0.5.0 and writes are single-process only, so multi-writer or cluster workloads aren't the target.
The problem it solves
Most vector databases — Milvus, Qdrant, Weaviate — run as a separate service you deploy, connect to over the network, and operate. For a notebook, a CLI tool, a desktop app, or an edge device, that's a lot of moving parts for what is really just a local index. You either take on server ops or bolt vector search onto Postgres. Zvec's answer is to run the database in-process, the way SQLite does for relational data: the index is a library call, not a network hop.
What is it?
The Zvec vector database is an open-source (Apache-2.0) in-process vector database written in C++ and maintained by Alibaba. Instead of a client-server deployment, it embeds as a library inside your application and stores collections on local disk. It supports dense and sparse vectors, multiple index types (HNSW is listed in its topics; a DiskANN on-disk index landed in v0.5.0), native full-text search over string fields, hybrid retrieval in a single query, and write-ahead logging so data survives a crash. The README says it has been used inside Alibaba Group.
Why it's getting attention
It's an Alibaba-backed project that has crossed roughly 14.7k GitHub stars, and the v0.5.0 release (June 2026) added full-text search, hybrid retrieval, and a DiskANN on-disk index, plus official Go and Rust SDKs and a visual tool called Zvec Studio. The in-process, embed-anywhere angle — vector search without running a server — is the same pattern that made sqlite-vec and LanceDB popular, and Zvec is chasing it with a broad language-SDK lineup.
Key features
- ✓In-process/embedded: runs as a library inside your app, with no separate database server to deploy or connect to
- ✓Dense and sparse vectors, multi-vector queries, and index types that scale from in-memory (HNSW) to on-disk (DiskANN, added in v0.5.0)
- ✓Native full-text search (FTS) over string fields, so keyword queries don't need a separate search engine
- ✓Hybrid retrieval that combines vector similarity, full-text, and scalar filters in a single MultiQuery
- ✓Write-ahead logging (WAL) for durability, so data persists through a process crash or power loss (per the README)
- ✓Concurrent access model: multiple processes can read a collection at once, but writes are single-process exclusive
- ✓SDKs for Python, Node.js, Go, Rust, and Dart/Flutter, plus prebuilt binaries for Linux, macOS (ARM64), and Windows
Best use cases
- •Adding local semantic search or RAG memory to an app without deploying a vector-database server
- •Embedding vector search inside a desktop, CLI, or notebook workflow where a network database is overkill
- •Running similarity search on an edge device or in an offline environment
- •Combining keyword full-text search and vector similarity in one query for more precise retrieval
How to install / try
Zvec ships prebuilt SDKs, so the common path is a package install rather than a build. Python: `pip install zvec` (Python 3.10–3.14). Node.js: `npm install @zvec/zvec`. Dart/Flutter: `flutter pub add zvec`. Official Go and Rust bindings live in separate repos. Prebuilt binaries cover Linux (x86_64, ARM64), macOS (ARM64), and Windows (x86_64); building from source requires the project's C++ toolchain and its Building from Source guide.
How to use
In Python you define a `CollectionSchema` with a vector field, call `zvec.create_and_open(path=..., schema=...)` to open a collection on local disk, `insert()` a list of `zvec.Doc` objects with their embeddings, then run `collection.query(zvec.Query(field_name=..., vector=[...]), topk=10)` to get the nearest matches back as scored results. There's no server to start — the collection is a directory on disk. Full API details are in the project's docs.
Strengths
- ✓No server to run: the database is a library call, which cuts deployment and ops for local or embedded use
- ✓Broad SDK coverage — Python, Node.js, Go, Rust, Dart/Flutter — which is unusual for an embedded vector DB
- ✓Full-text plus vector plus scalar filters in one query, instead of stitching a search engine onto a vector store
- ✓WAL-backed durability and an on-disk DiskANN index for datasets larger than RAM (per the README)
- ✓Apache-2.0 licensed and backed by Alibaba, with active releases
Limitations & risks
- △Single-writer by design: multiple processes can read a collection, but only one can write at a time — no multi-writer or clustered write path, so it's not a drop-in for a distributed vector service
- △Young and pre-1.0: the current release is v0.5.0 (June 2026), so the API and on-disk format can still change between versions
- △C++ core reached through language bindings — building from source needs a C++ toolchain, and issues can straddle the binding boundary
- △Performance and 'used inside Alibaba Group' claims come from the project's own README and benchmark docs; the repo metadata has no independent benchmark
- △Prebuilt binaries are limited to Linux, macOS ARM64, and Windows x86_64 — no Intel-mac binary is listed, so those users build from source
Alternatives
Who should try it — and who should skip
Developers who want vector search embedded directly in an app — a desktop tool, a CLI, a notebook, an edge device, or a single service — and would rather not run and operate a separate vector-database server. If you need distributed writes, multi-node scaling, or a locked-down 1.0 API, a server-based system like Milvus or Qdrant fits better; if you're already on Postgres, pgvector may be enough.
Frequently asked questions
Zvec is an open-source, in-process vector database from Alibaba, written in C++ and licensed Apache-2.0. It embeds as a library inside your application — no separate server — and supports dense and sparse vectors, full-text search, and hybrid queries.
Yes. Zvec is licensed under Apache-2.0 and developed in the open on GitHub under the alibaba organization.
Milvus and Qdrant run as separate server processes you deploy and connect to over the network. Zvec runs in-process as a library, closer to how sqlite-vec or LanceDB work, so there's no server to operate.
The README lists official SDKs for Python (3.10–3.14), Node.js, Go, Rust, and Dart/Flutter, with prebuilt binaries for Linux, macOS ARM64, and Windows x86_64.
Yes. Since v0.5.0 it has native full-text search over string fields and hybrid retrieval that combines full-text, vector similarity, and scalar filters in a single query.