Zvec 是阿里开源的进程内向量数据库,定位「向量数据库的 SQLite」无需服务直接嵌入应用。封装 Proxima 实现毫秒级十亿向量搜索,支持稠密/稀疏向量、过滤组合查询,覆盖 Python/JS/Flutter,12k+ Stars Apache-2.0 开源。
🎤 引言
做 RAG、智能体、语义搜索,是不是一上来就得部署一套 Milvus / Qdrant / Weaviate?Docker compose 一拉,配置文件几百行,端口映射、持久化、监控告警一套配齐——还没开始写业务代码,半小时过去了。
有没有可能像 SQLite 那样,pip install 完直接 import 就用?
Zvec 就是冲着这个痛点来的——阿里通义实验室出品,定位「向量数据库的 SQLite」。进程内运行,无需任何外部服务、daemon 或基础设施。
GitHub 上 Star 数已达 12,343(2026-06-24 抓取),Fork 733,License Apache-2.0,最新版本 v0.5.0(2026-06-12 发布),新增 MultiQuery 支持。
⭐ 核心功能
⚡ 毫秒级十亿向量搜索
底层封装了阿里自研的 Proxima 向量搜索引擎(同款技术支撑阿里内部淘宝搜索、支付宝推荐等场景),实测:
- 十亿向量规模下亚毫秒级搜索
- 索引构建速度比纯 Faiss HNSW 提升 3-5 倍
- 内存占用低,支持稠密向量 + 稀疏向量混合索引
🧩 进程内运行,零基础设施
An open-source, fast, lightweight, and feature-rich vector database that runs entirely in-process — no server, daemon, or external infrastructure required.
跟传统向量数据库最大的区别:没有独立的 server 进程。Zvec 作为库直接链接进你的应用,跟业务代码共享内存。优点是:
- 部署成本归零——不需要 Docker compose
- 启动速度极快——几百毫秒就能跑
- 资源隔离简化——不用担心端口冲突
- 适合本地开发、桌面应用、Edge 设备
📦 三语言 SDK
官方提供完整 SDK:
# Python
pip install zvec
# JavaScript / TypeScript
npm install @zvec/zvec
# Flutter / Dart
flutter pub add zvecPython SDK 是主推方向,API 设计参考了 ChromaDB,但底层引擎是 Proxima 而非 DuckDB。
🎯 核心能力
- Dense & Sparse Vectors:稠密 + 稀疏向量混合索引
- Filtered Vector Search:向量相似度 + 字段过滤组合(类似 SQL WHERE)
- Grouped Search:GROUP BY 风格聚合("每个分类下 Top-3 相似")
- MultiQuery(v0.5.0 新增):一次查询多个向量取并集/交集
- Hybrid Search:向量 + 关键词混合检索
🔌 零依赖一键启动
A single package is all you need — pure local, just install and start searching in seconds.
不需要先装 Redis、不需要先跑 Elasticsearch、不需要 Docker。装完就能用。
🛠️ Zvec Studio 可视化工具
对不熟悉代码的用户,官方提供 Zvec Studio——一个 GUI 工具,可以浏览索引数据、调试查询、可视化向量空间。降低非工程师的接入门槛。
📥 安装使用
一行命令安装
# Python 用户
pip install zvec
# Node 用户
npm install @zvec/zvec
# Flutter 用户
flutter pub add zvec一分钟上手示例
import zvec
# 1. 定义 schema(类似 SQL DDL)
schema = zvec.CollectionSchema(
name="example",
vectors=zvec.VectorSchema("embedding", zvec.DataType.VECTOR_FP32, 4),
)
collection = zvec.create_and_open(path="./zvec_example", schema=schema)
# 2. 插入向量
collection.insert(zvec.Doc(
id="1",
vectors={"embedding": [0.1, 0.2, 0.3, 0.4]}
))
# 3. 查询最近邻
results = collection.query(
queries=zvec.Query("embedding", vector=[0.4, 0.3, 0.3, 0.1]),
topk=10,
)
for r in results:
print(r.id, r.score)构建 RAG 本地检索层
from sentence_transformers import SentenceTransformer
import zvec
# 1. 加载 embedding 模型(用本地模型保证隐私)
model = SentenceTransformer("BAAI/bge-small-zh-v1.5")
# 2. 建索引
schema = zvec.CollectionSchema(
name="docs",
vectors=zvec.VectorSchema("vec", zvec.DataType.VECTOR_FP32, 512),
)
col = zvec.create_and_open("./rag_db", schema=schema)
# 3. 文档向量化入库
texts = ["Zvec 是阿里开源向量数据库", "RAG 是检索增强生成", ...]
embeddings = model.encode(texts)
for i, (text, vec) in enumerate(zip(texts, embeddings)):
col.insert(zvec.Doc(id=str(i), vectors={"vec": vec.tolist()}, fields={"text": text}))
# 4. 检索
query_vec = model.encode(["向量数据库有哪些"])
hits = col.query(queries=zvec.Query("vec", vector=query_vec[0].tolist()), topk=3)
for h in hits:
print(h.score, h.fields["text"])从源码构建
需要 CMake + C++17 编译器,详见 Building from Source 文档。
🔍 对比/替代方案
Zvec vs ChromaDB
| 维度 | ChromaDB | Zvec |
|---|---|---|
| 引擎 | DuckDB + HNSW | Proxima(阿里自研) |
| 规模 | 百万级 | 十亿级 |
| 嵌入方式 | 进程内 | 进程内 |
| 多语言 | Python 为主 | Python/JS/Flutter |
| License | Apache-2.0 | Apache-2.0 |
| Stars | 22k+ | 12k+ |
结论:百万级以下 ChromaDB 够用;规模上来、需要混合检索/分组聚合,Zvec 更强。
Zvec vs Faiss
- Faiss:Meta 出品,纯 C++ 库,没有持久化、没有元数据过滤、API 偏底层
- Zvec:封装 Proxima + 元数据 + 持久化,面向应用层
如果你只想算相似度不关心业务,Faiss 轻量;如果要落地业务(增删改查 + 元数据过滤),Zvec 友好得多。
Zvec vs Milvus / Qdrant / Weaviate
- Milvus/Qdrant/Weaviate:独立 server,需要部署、运维、监控
- Zvec:进程内嵌入,无需 server
嵌入式场景(桌面 App、CLI 工具、Edge 设备、IoT)Zvec 是唯一选择;大规模生产环境 + 多语言微服务架构,传统向量数据库仍有优势。
⚠️ 注意事项
关于规模的坑
- 十亿向量需要充足内存:Proxima 索引本身有内存开销,10 亿向量(768 维)约需 80-150 GB RAM,小机器跑不动
- 持久化路径:数据存到本地文件目录,不支持分布式,多机部署需要自己上层包装
- 多进程并发写:当前版本不支持同一 collection 多进程同时写入,需要进程内加锁
关于生态的坑
- 第三方 embedding 模型集成:官方只给基础 example,SentenceTransformer / OpenAI / Cohere 等集成需要自己写胶水代码
- 没有内置 REST API:要对外提供服务必须自己包一层 HTTP server
- 监控/告警缺失:没有 Prometheus exporter,运维可视化要自己 DIY
- Cluster 模式未上线:分布式版本在 roadmap,单机是当前唯一选项
关于 License 的注意事项
- Apache-2.0:商用友好,但商标条款需要注意——不能直接用「Zvec」「Alibaba」等品牌名做衍生产品宣传
- 专利授权:Apache-2.0 含专利授权,但如果你公司有专利反击策略,需要法务评估
已知问题(来自 GitHub Issues,共 59 个)
- Windows 下编译偶尔失败:MSVC 工具链版本敏感,推荐 WSL2
- 大向量删除后空间未立即回收:需手动调用
compact() - 部分 LangChain 集成示例滞后:社区贡献版本与官方版本偶有脱节
✅ 总结
Zvec 适合谁用?
- 🛠️ 本地 RAG 开发者:不想搭 Milvus 集群,桌面端跑向量检索
- 📱 Edge / IoT 场景:嵌入式设备跑语义搜索、推荐
- 🖥️ 桌面应用开发者:本地图片搜索、文档检索、代码搜索
- 🧪 AI Agent 开发者:需要轻量级长期记忆存储(llm-memory)
- 📊 中等规模生产系统:百万到亿级向量,单机可承载
不适合谁?
- ❌ 需要分布式集群的大厂核心推荐系统(Milvus/DashVector 更合适)
- ❌ 想要「开箱即用监控告警」运维(自己包一层)
- ❌ 不熟悉 Python/C++ 的纯前端开发者(JS SDK 还很新)
一句话推荐:如果你受够了「每个 demo 都要 docker-compose up 半小时起 milvus/qdrant」,又不需要分布式集群,Zvec 是 2026 年最值得一试的嵌入式向量数据库。阿里背书 + Apache-2.0 + 12k Stars + 半年内快速迭代,生态和稳定性都在快速完善。
更多详情:
- 仓库地址:https://github.com/alibaba/zvec
- 官网:https://zvec.org
- 文档:https://zvec.org/en/docs/db
- v0.5.0 Release Notes:GitHub Releases
- Discord 社区:官网链接