TriviumDB
YoKONCy/TriviumDB加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
在 AI 应用开发中,数据存储往往是工程师最头疼的问题之一:向量数据库负责语义检索、图数据库负责关系推理、文档数据库负责元数据管理——三套系统、三套部署、三套维护。想给一个本地运行的 Agent 加上"记忆"功能,不得不引入沉重的外部依赖,学习曲线陡峭,运维成本极高。
TriviumDB 的出现,就是为了解决这个问题。它用纯 Rust 编写了一个嵌入式数据库内核,把向量检索、属性图和文档元数据三种能力原生融合在同一块存储引擎里,目标直指 AI 应用场景下的本地记忆存储——它的 slogan 就是"AI 应用领域的 SQLite"。
传统的 RAG(检索增强生成)流水线中,向量检索负责"语义相似",但它无法理解实体之间的关系。比如问"谁是谁的上司"这类多跳问题,纯向量检索只能找到语义相近的文本片段,却无法追踪实体之间的关联路径。
图数据库擅长关系推理,但构建成本高——需要预先设计 Schema、手动维护节点和边。而 TriviumDB 的思路是:每个节点天然同时拥有稠密向量、稀疏文本、JSON 元数据和图关系,不需要在多个系统之间同步数据,一份存储满足三种查询模式。
TriviumDB 的核心是 TQL(Trivium Query Language),一套类 SQL 的查询语言,可以将向量召回、属性索引、图扩展、图算法、路径查询、集合代数、迭代和聚合统一编排为可自由组合的算子管线。
背后的调度器基于 Cascades 优化器——这是学术界公认的高效查询优化框架,最早在微软的 SQL Server 中得到工业级应用。TQL 接收一段管线描述后,由优化器自动规划最优执行顺序,而不是让开发者手动调优。这对 AI 爱好者非常友好:不需要理解底层实现,写出管线逻辑即可。
向量检索是 TriviumDB 的核心竞争力之一。项目实现了一个自研的 QuIVer ANN 索引,号称达到 SOTA 级别。根据 README 描述,索引会根据向量分量工作量(约 800 万维)动态决定是否触发(2,500–10,000 节点阈值),无需手动配置。
同时,代码中保留了 rayon 并行暴力搜索路径,在小规模数据(万级以下向量)上保证 100% 精确召回。对于需要精确结果的场景,直接走精确搜索路径即可。
TriviumDB 内置了一套完整的图算法库,支持 17 种算法,包括:
这些算法可以在 TQL 查询管线内直接调用。例如在图扩展阶段触发 PageRank 重排序,或者在多跳推理时用 Dijkstra 找最短路径——所有操作都在同一个数据库内核中完成,无需数据导出。
TriviumDB 提供两种持久化模式,适合不同场景:
*.tdb 文件,复制走人,极度便携,适合测试和轻量部署.vec 与 pld.<generation> sidecar 文件,通过内存映射按需加载,适合生产环境的大规模数据此外还有 Payload 冷热分层:已发布的 raw JSON 留在 mmap 冷基础层,新写入进入内存 delta 层,解析结果缓存到 LRU Cache。ANN/BQ/Exact 候选阶段实现零 Payload 解析,最大化检索效率。
尽管核心是 Rust,TriviumDB 通过 PyO3(Python)和 NAPI(Node.js)提供了原生绑定。使用 maturin 构建系统,Python 侧只需 pip install triviumdb,API 风格借鉴了 MongoDB 的查询语法:
from triviumdb import TriviumDB
db = TriviumDB("./mydb")
db.insert({"text": "人工智能", "vector": [0.1, 0.3, ...]})
results = db.search(vector=[0.2, 0.4, ...], limit=5)
这使得没有 Rust 经验的开发者也能快速上手,降低了使用门槛。
TriviumDB 在数据安全上毫不妥协:
版本 3 进一步将 .tdb / .vec / .pld 的 generation、大小和整文件 CRC 绑定为同一提交点,任何混代输入或文件损坏都会触发 fail-closed 保护。
客观地说,TriviumDB 目前处于 Alpha 阶段(Development Status :: 3 - Alpha),生产环境使用需谨慎:
TriviumDB 的定位非常清晰:在单机环境下,为 AI Agent 提供高性能、多模态的本地记忆存储。它的出现填补了一个真实的市场空白——不需要引入 Redis + Neo4j + Elasticsearch 的三套架构,一个嵌入式数据库就能满足向量检索、关系推理和元数据存储三种需求。
如果你正在开发一个本地运行的 Agent,或者需要一个轻量级的 RAG 知识库后端,TriviumDB 值得投入时间研究。它的 Rust 实现保证了极高的性能下限,TQL 查询语言降低了多模态查询的复杂度,而 Rom/Mmap 双模式则兼顾了便携性和生产可用性。当然,生产项目中使用任何 Alpha 阶段的项目都需要充分评估风险。