HelixDB — 用 Rust 构建的图向量数据库
HelixDB 是一个让你在单一平台上构建 AI 应用所有组件的数据库。你不再需要单独的应用数据库、关系数据库、向量数据库、图数据库或应用层来管理多个存储位置。HelixDB 为智能体提供对公司数据的联邦访问,用于记忆、企业知识库和应用。
Helix 主要使用图 + 向量数据模型,同时也支持 KV、文档和关系数据。
快速开始
安装 CLI:curl -sSL "https://install.helix-db.com" | bash
最快的路径是 helix chef — 一个交互式的一站式引导程序。它安装 HelixDB 查询技能和文档 MCP,搭建项目,启动本地实例,导入示例数据,并生成 HELIX_CHEF_PROMPT.md。
手动本地设置:
helix init— 初始化项目,生成 helix.toml、.helix/ 目录和示例 request.jsonhelix start dev— 启动本地实例(默认端口 6969)helix query dev --file examples/request.json— 发送查询
用 SDK 编写查询
查询用 Rust 或 TypeScript DSL 编写,直接作为动态请求发送到 POST /v1/query — 无需构建或部署步骤。
Rust 示例:
use helix_db::Client;
use helix_db::dsl::prelude::*;
#[register]
pub fn add_user(name: String) {
write_batch()
.var_as("user", g().add_n("User", vec![("name", name)]).value_map(None::>))
.returning(["user"])
}
#[tokio::main]
async fn main() {
let client = Client::new(None).unwrap();
let new_user = client.query::().dynamic(add_user("John Doe".to_string())).send().await.unwrap();
println!("new user: {:#}", sonic_rs::to_string_pretty(&new_user).unwrap());
}
TypeScript 示例:
import { Predicate, defineParams, g, param, writeBatch } from "@helix-db/helix-db";
const addUserParams = defineParams({ name: param.string() });
function addUser(p = addUserParams) {
return writeBatch()
.varAs("user", g().addN("User", { name: PropertyInput.param("name") }).project([PropertyProjection.new("name")]))
.returning(["user"]);
}
const newUser = await fetch("http://localhost:6969/v1/query", {
method: "POST",
headers: { "content-type": "application/json" },
body: addUser().toDynamicJson(addUserParams, { name: "John Doe" }),
}).then((r) => r.json());
HelixDB Cloud
HelixDB Cloud 是基于对象存储的部署,集成向量和全文搜索、完整 ACID 事务、单写入器 + 自动扩缩读取节点、高可用性(3+ 网关和数据库节点)。
架构特点
- 图 + 向量数据模型,单一查询 DSL
- 内置 MCP 集成(可直接与 Claude Code、Codex 等 AI 编码工具配合)
- Rust 实现,性能出色
- 本地开发免费,Cloud 提供托管服务