开源、跨平台、嵌入式向量数据库,专为移动端和嵌入式设备设计。支持 IVF/HNSW 索引、SIMD 加速,兼容 15+ 编程语言
高性能、易集成、零配置的向量数据库解决方案
C99 标准编写,无外部依赖,易于集成到任何项目
Android, iOS, macOS, Windows, Linux 五大主流平台
支持 IVF 和 HNSW 索引算法,满足不同场景需求
自动检测并使用 SSE/AVX/NEON 指令集,极致性能
开箱即用,无需复杂配置,快速部署
支持 PQ (Product Quantization) 和 SQ (Scalar Quantization)
针对移动设备和嵌入式系统进行了内存和性能优化
包含全面的单元测试、并发测试和性能测试
覆盖所有主流操作系统和设备类型
提供 15+ 编程语言的 SDK 和示例代码
128 维向量在标准桌面环境下的测试结果
简单的 API,几行代码即可开始使用
#include <jw_vecdb.h> int main() { // 初始化 jw_init(); // 创建/打开数据库 jw_vecdb_t *db; jw_vecdb_open("my_vectors.jwv", JW_VECDB_CREATE, &db); // 创建 Collection jw_collection_t *coll; jw_vecdb_create_collection(db, "documents", 1536, &coll); // 插入向量 float vec[1536] = { /* embedding data */ }; jw_vid_t vid; jw_collection_insert(coll, vec, &vid); // 搜索相似向量 jw_search_result_t results[10]; jw_size_t count = jw_collection_search(coll, query_vec, 10, results); // 关闭数据库 jw_vecdb_close(db); jw_cleanup(); return 0; }
pip install jinwo-vecdb
import jinwo_vecdb # 版本信息 print(jinwo_vecdb.__version__) # 打开/创建数据库 db = jinwo_vecdb.open("my_vectors.jwv") # 创建 Collection (384维向量) db.create_collection("documents", 384) # 插入向量 vec = [float(i) for i in range(384)] db.insert("documents", vec) # 批量插入 vectors = [[float(j) for j in range(384)] for _ in range(50)] vids = db.insert_batch("documents", vectors) # 搜索 Top-10 相似向量 results = db.search("documents", query_vec, k=10) for vid, distance in results[:5]: print(f"vid={vid}, distance={distance:.6f}") # 删除向量 db.delete("documents", vid) # 关闭数据库 db.close()
npm install jinwo-vecdb
import { open } from 'jinwo-vecdb'; // 打开/创建数据库 const db = await open('/tmp/test_db'); console.log('版本:', db.version()); // 创建 Collection (128维向量) const coll = db.createCollection('test', 128); // 插入向量 const vec = new Array(128).fill(0.5); const vid = coll.insert(vec); // 构建索引 coll.buildIndex(); // 搜索 Top-3 相似向量 const results = db.search('test', vec, 3); for (const r of results) { console.log(`id=${r.id}, score=${r.score}`); } // 删除向量 coll.delete(vid); // 关闭数据库 db.close();
访问 Gitee 或 GitHub 获取完整源码和文档