zvec
alibaba
Lightweight, in-process embedded vector database from Alibaba with multi-language bindings.
What is zvec?
A lightweight, in-process vector database from Alibaba - a library you embed directly, not a server. It supports dense and sparse vectors, hybrid search, write-ahead logging, and bindings for Python, Node and Dart/Flutter.
zvec in depth
Most vector databases assume you want a server. You provision a process, expose a port, manage connections, and pay for that infrastructure even when your dataset is small or your app runs on a single machine. zvec, an open-source project from Alibaba, takes the opposite stance. It is an embedded, in-process vector database: a library you link directly into your application rather than a service you call over the network. There is nothing to deploy and nothing to configure. You open a local store, write vectors and metadata, and query them inside the same process. The model is closer to SQLite than to a managed cluster, and it targets the large category of AI features that need similarity search without the operational weight of a standalone database.
zvec stores data in local files and uses a write-ahead log so that writes survive crashes, with single-process write exclusivity and concurrent reads from multiple processes. It handles dense and sparse vectors, supports multi-vector queries, and offers native full-text search over string fields, so you are not bolting on a separate text engine. The distinctive piece is hybrid retrieval: a single query can combine dense vectors, sparse vectors, metadata filters, and text matching together rather than running and merging several searches yourself. The core is written in C++ and exposes bindings for Python, Node.js, Go, Rust, and Dart/Flutter, which is unusually broad for a project this young. More recent builds added a DiskANN index that keeps bulk data on disk to hold down memory use as collections grow.
The natural fit is anywhere a vector store needs to live next to the application instead of behind it. Desktop and mobile apps are an obvious case: the Dart/Flutter binding lets a Flutter app keep an on-device index for offline semantic search or local agent memory, with no backend round trip. Edge and embedded deployments benefit for the same reason, since there is no server to ship. For developers, a local RAG prototype in a notebook or a CLI tool can use zvec to avoid standing up Pinecone or a Postgres extension just to test retrieval. The multi-language bindings also help teams that want the same embedded store across a Python backend, a Node service, and a Go or Rust component without running a shared vector service between them.
The honest caveats matter here. zvec is still pre-1.0, with a short release history, so APIs and on-disk formats can shift between versions and you should expect breaking changes. The headline performance claims, billions of vectors searched in milliseconds and battle-tested usage inside Alibaba Group, come from the vendor and have not been independently verified, so treat published QPS figures as a starting point for your own benchmarks rather than a guarantee. Because the core is C++ and distributed partly via source, some platforms may require a build toolchain such as CMake and a compiler. The single-writer model is fine for embedded use but is not a path to multi-node horizontal scaling, and the newer bindings and the DiskANN index are recent enough that they carry the usual early-stage rough edges.
Compared with managed vector services or server-based engines, zvec is not trying to be your central, multi-tenant production database. Its argument is that a large share of vector workloads never needed a server in the first place, and for those it removes an entire tier of infrastructure. If you are building edge software, a desktop or Flutter app, local agent memory, or a self-contained RAG prototype, an embedded store that ships inside your binary is a genuinely good fit, and Apache-2.0 licensing keeps it usable commercially. It is harder to recommend for large, mission-critical production vector workloads while it remains v0.x. For those, a mature managed service is still the safer choice. Adopt zvec where local and embedded is the point, and wait if you need proven scale today.
Pros & Cons
Pros
- No server or config - a real embedded vector DB
- Multi-language bindings, runs anywhere from notebooks to edge
- Apache-2.0, and 'battle-tested within Alibaba Group'
Cons
- 'Billions of vectors, sub-millisecond latency' is a vendor claim, not independently verified
- v0.4.0 - early, only 7 releases
- C++ core may need a build toolchain on some platforms
License
Apache-2.0 (OSI-open)
When it is interesting
An embedded vector DB for edge, desktop apps or local RAG.
When it is too early
Large production vector workloads while it is still v0.x.
This repo featured in the 2026-06 edition of the Open-Source AI Radar.
langextract
Python library from Google for LLM-powered structured extraction with source grounding.
LEANN
StarTrail-org
RAG on everything - graph-based vector index claiming 97% storage savings for private on-device search.
turbovec
RyanCodrai
Rust vector index with TurboQuant compression (ICLR 2026) - SIMD kernels, online ingest.