Community edition · v0.2.0-beta.5

把向量检索,收进一个二进制。

HouyiDB 是单机、内存优先的向量数据库:Rust 编写,一个二进制同时提供 pgwire、HTTP 与 OpenAI 兼容 embedding 网关。

单机部署 内存优先 Rust Apache-2.0

前两项为单机、单次运行的本机工程测量;机器、版本与参数见性能页。不是实验室基准,也不能跨场景拼成一个总分。

Why / 01

三件事,不向复杂度妥协。

向量数据库的日常,是写入、检索与运维三股力量互相拉扯。HouyiDB 的选择是把它们压进单机边界,用尽可能少的部件解决。

01

写入不堵检索。

HotBuffer 接住实时写入,Async-Builder 在后台并行合图。plan/apply 把规划放进读锁、提交压进短写锁——构图期间,检索仍然可以并发读图。

  • 流式自测50% 阶段串行查询 104s → 3.9s;p99 1.72s → 21ms
  • 写入路径HotBuffer + Async-Builder
  • 回退开关HOUYI_HNSW_PLAN_APPLY=0
02

一种数据,三种入口。

HTTP JSON 适合服务集成,pgwire 让 psql 与 PostgreSQL 客户端直接说话,OpenAI 兼容网关把 embedding 上游接进同一个 collection。

  • HTTP/v1/collections · OpenAPI
  • pgwiretext / binary · SQL 混合检索
  • 向量化/v1/embeddings · 上游自选
03

把复杂度留在单机。

Rust 实现,单二进制落地;PAX 行列混存配合 bitset 剪枝,WAL 与图快照负责冷启动恢复。主备切换手动 promote,不引入自动选主与分片层。

  • 存储PAX · 64B 对齐 · WAL + 快照
  • 部署单二进制 / Docker / Helm
  • 边界单机 · 手动主备 · 无分片

Quickstart / 02

60 秒,从零到第一次检索。

需要 Docker;或 Rust 1.87+ / macOS 预编译包。首次镜像构建约 5–15 分钟,构建完成后,下面三步可在 60 秒内跑完。

Terminal / quickstart bash
# 1 · 启动:HTTP :7000 / pgwire :5432
git clone https://github.com/houyidb-community/houyidb.git
cd houyidb
docker compose up -d
curl -sS --noproxy '*' http://127.0.0.1:7000/v1/health
# {"status":"ok"}

# 2 · 写入(collection 首次写入自动创建,维度自适应)
curl -sS --noproxy '*' -X POST \
  http://127.0.0.1:7000/v1/collections/goods/upsert \
  -H 'Content-Type: application/json' -d '{
  "vectors": [
    {"id":1,"values":[0.92,0.88,0.06,0.05,0.05,0.04,0.05,0.05],"label":"fruit","payload":{"name":"apple"}},
    {"id":2,"values":[0.05,0.04,0.92,0.90,0.06,0.05,0.05,0.04],"label":"electronics","payload":{"name":"laptop"}},
    {"id":3,"values":[0.04,0.05,0.05,0.06,0.90,0.92,0.05,0.04],"label":"book","payload":{"name":"rust-book"}}
  ]}'
# {"inserted":3}

# 3 · 检索
curl -sS --noproxy '*' -X POST \
  http://127.0.0.1:7000/v1/collections/goods/search \
  -H 'Content-Type: application/json' \
  -d '{"vector":[0.90,0.85,0.05,0.05,0.05,0.05,0.05,0.05],"k":3}'
# {"ids":[...],"scores":[...]}

Capabilities / 03

能力清单,写清楚状态。

对应 v0.2.0-beta.5 源码树。beta 就是 beta:不把路线图当现货,也不把单机能力说成集群能力。

HouyiDB v0.2.0-beta.5 能力与状态
能力域能力状态
检索与写入
检索HNSW 图索引 + SIMD 距离计算(NEON;AVX feature 隔离)Beta
检索标量过滤与混合检索(label 倒排 + bitset 剪枝)Beta
检索多索引后端:Clustered / PQ / HII-L0Beta
写入HotBuffer + Async-Builder 双速写入Beta
持久化 / 接口 / 生态
持久化WAL + 图快照 + 冷启动恢复Beta
接口HTTP JSON API 与 OpenAPIBeta
接口pgwire(text / binary)与 SQL 混合检索Beta
向量化OpenAI 兼容 /v1/embeddings 网关(上游自选)Beta
生态六语言 SDK + LangChain / LlamaIndex 适配器Beta
运维与部署
运维Prometheus 指标;RBAC、审计、静态加密、租户配额Beta
部署单二进制 / Docker Compose / HelmBeta
部署leader / follower 主备,手动 promoteBeta
路线图
路线图HII L1(GPU CAGRA)与 L2(NVMe DiskANN)Preview
路线图MCP ServerPlanned

状态描述 v0.2.0-beta.5 源码树。beta 期间 API 与存储格式仍可能调整;社区版不做分片,也不提供自动选主。细节见服务端手册与部署指南。

SDK / 04

六种语言,同一个 stable_id。

客户端覆盖常用后端与数据栈;字符串 id 经 BLAKE2b-8 映射为 u64,同一字符串在任意 SDK 得到同一结果,删除与重放可以跨语言进行。

stable_id:BLAKE2b-8 大端 & 2^63−1,与服务端网关一致;同一字符串 id 在任意语言得到同一 u64。

Status / 05

Beta,但边界说清楚。

v0.2.0-beta.5 是 developer preview:适合功能验证、性能试用与集成预研。API、存储格式和性能旋钮仍可能变化;关键生产负载请先完成验证、容量评估与恢复演练。

  • 单机边界主备为手动 leader / follower promote,不做自动选主,不引入分片。
  • 接口稳定性beta 期间接口以文档为准;破坏性变更写入 CHANGELOG。
  • 生产建议显式设置 --wal-path,纳入备份,并定期做冷启动恢复演练。

GitHub / 06

代码、协议与文档,都在 GitHub。

社区版 Apache-2.0 · 外部贡献需签署 CLA · 安全漏洞请走私密渠道
LICENSE · SECURITY · TRADEMARK