Skip to main content

TriviumDB Banner



Slogan

TriviumDB

向量 × 图谱 × 文档 —— 三位一体的 AI 原生嵌入式数据库

Battle-tested in mission-critical, air-gapped environments.

Trivium:拉丁语,意为"三条道路的交汇"。

“TriviumDB 定位是 AI 应用领域的嵌入式数据库,旨在解决单机环境下 Agent 复杂上下文和多模态记忆编织的痛点。如果是需要支撑千万并发的高可用分布式后端,请依然选择大型集群化组件!”

Rust Python License arXiv

中文 | English


一句话介绍

TriviumDB 是一个用纯 Rust 编写的嵌入式单文件数据库引擎,将向量检索(Vector)、**属性图谱(Graph)和文档型元数据(Document)**原生融合在同一个存储内核中。

我们的目标是成为 AI 应用领域的 SQLite:

  • 🗃️ Rom/Mmap 双引擎切换 —— 既支持单文件 *.tdb 复制走人,也支持分离 .vec 向量文件按需 mmap 零拷贝加载
  • 🔗 节点即一切 —— 每个节点天然同时拥有限定长度的稠密向量、稀疏文本倒排词频、元数据和图关系,ID 全局唯一,绝不错位
  • 🧠 为 AI 而生 —— 可选启用“AC自动机+BM25稀疏文本”与“Dense Vector稠密向量”的多路召回来触发图谱扩散检索,并内置多层认知管线(FISTA / DPP / PPR)
  • 🛡️ 四层数据安全保障 —— 原子替换 + WAL日志 + 事务干跑验证(Dry-Run)+ Mmap COW 隔离,断电断存不毁库
  • 🐍 Python / Node.js 原生 —— pip install 或 npm install 后直接使用,类 MongoDB 查询语法
  • ⚡ 高性能检索 —— rayon 并行暴力搜索(小规模 100% 精确)+ 自研 SOTA 级 ANN 索引 QuIVer(1 万节点以上自动激活),无需手动配置
  • 💾 SSD 友好 —— Append-Only WAL + 后台 Compaction 线程 + QuIVer 索引独立持久化,杜绝随机写入磨损
  • 🔒 共享只读打开 —— 多进程 Reader 共享锁并发查询已完成代际,Writer 继续保持排他锁与 WAL 安全边界
  • 🧩 类型化访问能力 —— Rust DatabaseReader 在编译期隐藏写 API,DatabaseWriter 保留完整嵌入式写能力
  • 🔄 不可变代际切换 —— GenerationStore 原子发布 current,跨进程 Reader 租约保护旧代安全回收,且不写入只读制品目录


TriviumDB Count

为什么需要 TriviumDB?

当前 AI 应用的「三库割裂」困境

几乎所有的 AI 应用(Agent / RAG / 推荐系统)都同时需要三种数据能力,但市面上没有一个引擎能同时原生支持它们:

flowchart TD
    classDef old fill:#ffebee,stroke:#ff5252,stroke-width:2px,color:#000;
    classDef new fill:#e8f5e9,stroke:#4caf50,stroke-width:2px,color:#000;
    classDef app fill:#e3f2fd,stroke:#2196f3,stroke-width:2px,color:#000;
    classDef warning fill:#fff3e0,stroke:#ff9800,stroke-width:2px,color:#000;

    subgraph 现状 ["❌ 现状:三库系统缝合"]
        direction TB
        App1((Agent App)):::app
        DB1[(SQL DB<br/>文本/属性)]:::old
        DB2[(Vector DB<br/>稠密向量)]:::old
        DB3[(Graph DB<br/>知识图谱)]:::old

        App1 <-.网路 / 跨库 JOIN.-> DB1
        App1 <-.RPC / 独立服务.-> DB2
        App1 <-.另一套重运行时.-> DB3
    end

    subgraph 痛点 ["⚠️ 核心痛点"]
        direction TB
        P1[1. 三组独立的 ID 空间,需手写胶水代码同步]:::warning
        P2[2. 删一条记录要操作三个库,极易数据不一致]:::warning
        P3[3. 先向量检索再图扩散需跨库聚合,延迟爆炸]:::warning
        P4[4. 部署笨重,分享模型状态需打包三份独立文件]:::warning
    end

    现状 --> 痛点

    subgraph 解决 ["✨ TriviumDB:一库横扫"]
        direction TB
        App2((Agent App)):::app
        TV[(TriviumDB<br/>单一引擎 / 单一文件 / 单一 ID 空间)]:::new

        App2 ==`insert()` 向量+文本+元数据+图关系原子写入==> TV
        TV ==`search_hybrid()` 双路混合归一锚定+图谱扩散一次返回==> App2
        TV -.`flush()` Mmap零拷贝极速热启动.-> TV
    end

    痛点 --> 解决

一个具体的例子

假设你在做一个 AI 对话记忆系统,用户说了一句「我昨天和小红去了咖啡馆」:

步骤 传统三库方案 TriviumDB
① 存语义向量 调 Qdrant API 写入 embedding db.insert(vec, payload) 一步完成
② 存数据 调 SQLite 写入时间、场景 ↑ 同一步,payload 里就是 JSON
③ 存关系 调 Neo4j: 用户→地点→人物 db.link(user, cafe, "went_to")
④ 后续召回 3 次跨库查询 + 手写合并 db.search(vec, expand_depth=2)
⑤ 迁移数据 导出 3 份 + 写转换脚本 复制 memory.tdb 一个文件

适用场景

场景 怎么用 TriviumDB
🤖 AI Agent 长期记忆 每条对话存为节点(embedding + 原文 + 时间戳),人物/地点/事件之间建边,召回时先向量匹配再沿关系链扩散
🎮 游戏 NPC 认知引擎 NPC 观察到的事件存为带向量的节点,NPC 之间的关系用图谱表达,对话时检索相关记忆自动生成回应
📚 个人知识库 Markdown 笔记切片后存入,概念之间手动或自动连边,语义搜索 + 知识图谱导航双模式浏览
🔬 小型推荐系统 用户和物品各为节点,交互行为存为带权边,混合检索实现「相似用户喜欢的 + 你的社交圈在看的」
🧬 生物信息学 基因/蛋白质序列的 embedding + 互作关系网络,一库搜到相似序列并自动追溯代谢通路

快速上手

安装

💡 TriviumDB 核心使用 Rust 编写,但我们已经在云端为您提前交叉编译了所有平台的二进制,无需在本地安装任何编译环境即可秒速安装!

Linux ARM64 / 鲲鹏支持: TriviumDB 支持 Linux AArch64,包含 ARM NEON 优化、ARM64 CI、Python manylinux ARM64 wheel 和 Node.js ARM64 addon 构建链路,可运行于基于 Linux AArch64 的鲲鹏服务器系统。

🐍 Python 用户

推荐使用超快的 uv (只需毫秒级):

uv pip install triviumdb

或者使用传统 pip:

pip install triviumdb

🌐 Node.js / 前端用户

跨平台包已自带 *.node 预编译拓展,并含有完整的 TypeScript 补全:

npm install triviumdb
# 或者
pnpm add triviumdb

🦀 Rust 原生用户

直接把我们当成 Library 依赖:

cargo add triviumdb

30 秒入门

import triviumdb

with triviumdb.TriviumDB("memory.tdb", dim=3) as db:
    id1 = db.insert([0.12, -0.45, 0.78], {"text": "小明喜欢吃苹果"})
    id2 = db.insert([0.08, -0.52, 0.81], {"text": "小红送了小明一箱苹果"})
    db.link(id1, id2, label="caused_by", weight=0.95)

    results = db.search([0.10, -0.48, 0.80], top_k=5, expand_depth=2, min_score=0.6)
    for hit in results:
        print(f"[{hit.id}] score={hit.score:.3f} | {hit.payload}")

批量 ANN 查询由 Rust 共享线程池并行执行;Python 整批释放 GIL,Node.js 返回 Promise 且不阻塞事件循环。同一路径只需打开一个数据库实例:

batch_results = db.search_batch(
    [[0.10, -0.48, 0.80], [0.72, 0.11, -0.35]],
    top_k=10,
    parallelism=0,
)
const batchResults = await db.searchBatch(queryVectors, 10, 0, 0.0)

parallelism=0 表示自动选择并发度,最大允许值为 64;结果外层顺序严格对应输入查询。批量 API 仅支持无状态查询,不允许 fatigue 语义。

📖 完整 API 参考、高级用法和 Rust 示例请查看 API 参考文档。


一次存储,多种查询

TriviumDB 中的一个节点可以同时拥有向量、JSON 文档、稀疏文本和图关系。这些数据共享同一个 NodeId、事务、WAL 与生命周期,因此无需在向量库、文档库和图库之间同步副本。同一份数据写入一次,即可按业务问题选择不同的查询路径。

TQL:统一查询语言

TQL(Trivium Query Language) 将文档过滤、图模式匹配、向量检索和 GraphFirst 约束排名统一在一套轻量 DSL 中:

-- 文档查询:按 JSON 字段过滤
FIND {type: "paper", year: {$gte: 2024}} RETURN * LIMIT 10

-- 图查询:匹配结构关系
MATCH (author)-[:wrote]->(paper)
WHERE author.name == "Alice"
RETURN paper

-- 向量锚定后,沿入边与出边做确定性结构扩展
SEARCH VECTOR [0.12, -0.45, 0.78] TOP 5
EXPAND BOTH [:cites|related*1..2]
RETURN *

-- GraphFirst:先由图模式限定合法候选,再在候选集内精确向量排名
MATCH (paper)-[:belongs_to]->(topic)
WHERE topic.name == "Database"
RANK paper BY VECTOR [0.12, -0.45, 0.78] TOP 10
RETURN paper

TQL 同时支持 WHERE、RETURN、ORDER BY、LIMIT/OFFSET、聚合、OPTIONAL MATCH 和 DML。详细语法参见 TQL 查询语言参考。

多种图谱与混合查询

查询方式 核心语义 典型用途
图模式匹配(MATCH) 按节点属性、边方向、label 和路径模式匹配结构 知识图谱查询、关系筛选、结构化联结
Reachability 按方向、label 和深度执行 BFS,返回确定性最短路径与逐跳 label 依赖链、权限链、数据血缘、可达性分析
GraphFirst(MATCH + RANK) 先由图结构产生合法 anchor,再在候选集合内精确向量 Top-K “只在某类关系约束内找最相似对象”
向量 + 结构扩展(SEARCH + EXPAND) 先用向量定位语义锚点,再沿 OUTGOING、INCOMING 或 BOTH 收集结构候选 语义检索后补充上下游上下文
SA-PPR 图谱扩散 从向量/文本锚点沿带权边传播相关性能量,可启用抑制、疲劳和重启 Agent 联想记忆、RAG 上下文扩展、推荐召回
混合检索(search_hybrid) AC 自动机 + BM25 稀疏文本 + Dense Vector 多路召回,再进行图扩散与重排 专有名词与语义兼顾的生产级检索

这些能力不是互相替代的查询模式:Reachability 回答“结构上能否到达”,GraphFirst 回答“结构约束内谁最相似”,SA-PPR 回答“哪些关联节点应获得更高相关性”。应用可以在同一份 .tdb 数据上按场景自由选择,也可以通过 TQL 将文档、图和向量条件组合在一次查询中。


核心特性

特性 说明
🔍 混合检索 向量锚定 → Top-K → 图谱扩散(Spreading Activation)→ 最终排序
🧠 认知管线 FISTA 残差寻隐 / SA-PPR 有限深度扩散 / DPP 多样性采样 / 疲劳不应期,运行时可独立开关
🔌 Hook 扩展系统 6 个管线关键阶段的自定义注入点:查询预处理 / 自定义召回 / 召回后处理 / 图扩散前 / 重排序 / 最终后处理,支持 C/C++ FFI 动态库插件
📦 三位一体 O(1) 自动增量 O(1) FreeList 墓碑空洞复用;删节点 O(1) 反向边哈希表(本项目称 Reverse Hash Net),彻底杜绝盘面膨胀与图谱雪崩
⚡ QuIVer ANN 索引 自研 SOTA 级近似最近邻图索引:BQ 签名 + Vamana 图导航,冷热分离架构,增量 Insert/Delete/Update 无需重建
💾 双模式存储 Mmap(大模型极速分体冷启动) / Rom(传统 SQLite 级单文件打包携带),无缝热切换
🛡️ 四层灾备防御 预写日志(WAL) + 写入原子替换 + 事务预检干跑(Dry-Run) + OS 内存写时复制隔离
🔄 零开销事务 begin_tx() 验证前置架构,中途报错绝不污染内存,实现真正的零代价原子回滚;QuIVer 索引事务安全(分离时间线架构)
🔎 高级过滤 类 MongoDB 语法:$eq/$ne/$gt/$lt/$in/$and/$or + 行级布隆特征阵列(Parallel Bit-Tag Array)硬件级加速
📝 图谱查询 内置类 Cypher 查询引擎:MATCH (a)-[:knows]->(b) WHERE b.age > 18 RETURN b
🐍 Python 原生 PyO3 绑定,pip install 后直接 import triviumdb
🌐 Node.js 原生 napi-rs 绑定,npm install 后直接 require('triviumdb')

📖 深入了解架构设计和技术细节请查看 支持特性详解。


向量索引策略:QuIVer

QuIVer(Quantized Indexed Vector Retrieval)是 TriviumDB 自研的 SOTA 级近似最近邻(ANN)图索引,融合 BQ 二进制量化与 Vamana 图导航,在保持极高召回率的同时实现数量级的检索加速。

📄 学术论文: QuIVer: Rethinking ANN Graph Topology via Training-Free Binary Quantization

🔬 实验复现: 完整的数据集准备、基准测试和复现指南请参阅 README_QUIVER.md

在 12 个百万级数据集(384-d 至 3072-d)上验证,QuIVer 以 <1.3 GB 热内存实现 ≥88% Recall@10 @ 13-41K QPS,多线程吞吐量超 DiskANN Rust 2.5-3.3×、hnswlib 3.6-4.7×、FAISS HNSW 3.8-4.9×。

⚠️ 维度建议:强烈建议数据库向量维度不超过 3072。 TriviumDB 的通用存储与精确 BruteForce 检索允许更高维度,但 QuIVer 的 BQ 签名安全上限是 3072 维。超过该维度时引擎不会自动构建 QuIVer,检索会稳定回退到 BruteForce;手动构建 QuIVer 会返回明确错误。高维数据库仍可使用,但无法获得 QuIVer ANN 加速,内存和计算开销也会显著增加。

TriviumDB 采用智能自适应双引擎向量索引,全程自动路由,无需手动配置:

阶段 引擎 激活条件 特点
小规模热区 BruteForce < 1 万节点(或 QuIVer 未就绪) 100% 精确召回,rayon 多核,延迟极低
大规模冷区 QuIVer 维度 ≤ 3072 且 ≥ 1 万节点时自动构建,独立持久化 BQ 签名 + Vamana 图导航 + f32 精排,冷热分离

QuIVer 的核心创新

冷热分离架构:QuIVer 内部仅存储 BQ 签名(hot)和图拓扑,f32 原始向量留在 MemTable 中(cold),精排时按需读取,内存占用减半。

Mmap 消除的是全量载入和重复拷贝,并不会消除磁盘 I/O。冷向量页未驻留时仍会产生 Major Page Fault;当随机查询工作集超过物理内存时,吞吐和尾延迟取决于 PageCache 命中率、存储设备随机读能力及系统回收压力。QuIVer 热索引位于匿名堆内存,并非文件 PageCache;当前内存预算统计也不包含 OS PageCache。

增量图维护:与传统 HNSW 不同,QuIVer 支持真正的增量操作:

  • ✅ 增量 Insert:新节点实时插入图中,无需全量重建
  • ✅ 增量 Delete:Tombstone 软删除,25% 退化阈值触发重建
  • ✅ 增量 Update:soft_delete + incremental_insert,原子替换
  • ✅ 事务安全:分离时间线架构,事务 commit 不可失败,QuIVer 同步无需回滚

独立持久化:QuIVer 索引以 .tdb.quiver 独立文件存储,POD 数据 memcpy 极速序列化,重启后零开销恢复。

# 启用 Python 绑定
maturin develop --features python

项目结构

TriviumDB/
├── src/
│   ├── lib.rs              # 库入口 + 公开 API
│   ├── database/           # 数据库核心模块(v0.7.0 模块化重构)
│   │   ├── mod.rs          # Database 结构体、CRUD、生命周期管理
│   │   ├── config.rs       # StorageMode / Config / SearchConfig 配置
│   │   ├── pipeline.rs     # 混合检索管线(L0-L9 + 6 个 Hook 注入点)
│   │   └── transaction.rs  # 事务系统(TxOp / Transaction / WAL 回放 + QuIVer 分离时间线)
│   ├── hook.rs             # 🔌 Hook 扩展系统(SearchHook trait + FFI 动态库加载)
│   ├── cognitive.rs        # 认知算子(FISTA / DPP / NMF)
│   ├── node.rs             # Node / Edge / SearchHit 数据结构
│   ├── vector.rs           # VectorType Trait(f32 / f16 / u64)
│   ├── filter.rs           # 高级过滤引擎 ($gt/$lt/$in/$and/$or)
│   ├── error.rs            # 统一错误类型
│   ├── storage/
│   │   ├── memtable.rs     # 内存工作区 (SoA 向量池 + HashMap + QuIVer 集成)
│   │   ├── wal.rs          # Write-Ahead Log(崩溃恢复)
│   │   ├── file_format.rs  # .tdb 单文件读写(含 BQ Metadata + QuIVer 持久化)
│   │   ├── vec_pool.rs     # 分层向量池(mmap 基础层 + delta 增量层)
│   │   └── compaction.rs   # 后台 Compaction 守护线程(含 BQ 自动重建)
│   ├── index/
│   │   ├── brute_force.rs  # rayon 并行暴力精确搜索
│   │   ├── bq.rs           # BQ 二进制量化签名(QuIVer 基础层)
│   │   └── quiver.rs       # 🚀 QuIVer ANN 索引(BQ + Vamana 图导航 + 冷热分离)
│   ├── graph/
│   │   ├── traversal.rs    # SA-PPR 有限深度图扩散
│   │   └── leiden.rs       # Leiden 社区发现算法
│   └── bindings/           # FFI 绑定层(公共逻辑已提取至核心模块)
│       ├── mod.rs          # 统一入口(feature-gated)
│       ├── python.rs       # PyO3 绑定(含 Hook 管理接口)
│       └── nodejs.rs       # napi-rs 绑定(含 Hook 管理接口)
├── cli/                    # 🖥️ CLI & TUI 工具(triviumdb-cli,命令 `tdb`)
│   ├── Cargo.toml
│   ├── README.md
│   └── src/
│       ├── main.rs             # clap 参数解析 + 模式分发
│       ├── db_handle.rs        # DbHandle dtype 动态分发(dispatch! 宏)
│       ├── formatter.rs        # table / json / csv 输出格式化
│       ├── tql_highlight.rs    # TQL 语法高亮(REPL ANSI + TUI Span)
│       ├── config.rs           # ~/.triviumdb.toml 配置加载
│       ├── commands/           # 非交互子命令(info/exec/export/import/repair/compact)
│       ├── repl/               # REPL 模式(rustyline + Tab 补全 + 多行输入)
│       └── tui/                # TUI 模式(ratatui + crossterm 全屏可视化)
├── benches/
│   └── benchmark.rs        # Criterion 性能基准测试套件
├── tests/
│   ├── unit/               # 单元测试(集中管理,~268 用例)
│   ├── proptest_core.rs    # 属性测试(~2450 随机用例)
│   ├── proptest_query.rs   # TQL 模糊测试
│   └── ...                 # 集成测试(并发/恢复/安全/压力等)
├── docs/
│   ├── api-reference.md    # 完整 API 参考文档
│   ├── features.md         # 支持特性详解
│   ├── best-practices.md   # 最佳实践指南
│   ├── hook-guide.md       # Hook 开发指南(C++ FFI / Rust Hook)
│   ├── tql-reference.md    # TQL 查询语言参考
│   ├── testing.md          # 测试实践说明
│   └── security.md         # 安全设计说明
├── Cargo.toml
├── pyproject.toml          # Maturin 构建配置
└── README.md

路线图

v0.1 — 核心引擎 MVP ✅

  • Node / Edge 数据结构 + 内存 MemTable + BruteForce 向量检索
  • 单文件 .tdb 序列化 + insert / link / search / delete API

v0.2 — 持久化与生态 ✅

  • WAL 崩溃恢复 + 后台 Compaction + mmap 零拷贝
  • PyO3 Python 绑定 + rayon 并行扫描 + 高级 Payload 过滤

v0.3 — 性能与跨平台 ✅

  • Node.js 绑定 (napi-rs)
  • AVX2 + FMA SIMD 加速余弦相似度

v0.4 — 认知管线 + BQ 索引 ✅

  • Mmap / Rom 双引擎 + 验证前置事务 (Dry-Run)
  • 认知检索管线(FISTA / PPR / DPP)
  • BQ 二进制量化索引(自动激活 + 自动重建)

v0.5 — 千万级架构 + Hook 系统 ✅

  • Parallel Bit-Tag Array 硬件级布隆过滤 + Zero-Ghost 墓碑复用
  • O(1) Reverse Hash Net 反向边查找
  • 检索管线 6 阶段 Hook 注入 + FFI 动态库插件
  • CI/CD 管线 + ASan + LibFuzzer 模糊测试

v0.6 — TQL 查询语言 + 跨架构适配 ✅

  • TQL 统一查询语言(MATCH 图遍历 / FIND 文档过滤 / SEARCH 向量检索)
  • TQL DML 写操作(CREATE / SET / DELETE / DETACH DELETE)
  • 属性二级索引(O(1) 倒排查找 + TQL 自动加速)
  • ARM NEON SIMD 适配 + 跨平台 CI(Apple Silicon / Linux ARM64 via QEMU)
  • Python / Node.js 绑定 API 补全(tql_mut / create_index / get_payload 等)

v0.7 — QuIVer SOTA ANN 索引 ✅ (当前)

  • 自研 QuIVer 近似最近邻图索引(BQ 签名 + Vamana 图导航 + 冷热分离)
  • 增量图维护:Insert / Delete(Tombstone) / Update 全部增量,无需全量重建
  • QuIVer 独立持久化(.tdb.quiver 文件,POD memcpy 极速序列化)
  • 事务安全的分离时间线架构(Phase 5 QuIVer Sync)
  • CLI 工具 triviumdb-cli(命令 tdb):非交互命令 + REPL(Tab 补全 / 语法高亮 / 多行输入)+ 配置文件
  • 数据库可视化工具:终端 TUI(tdb ui,图谱力导向布局 / k-hop 展开 / 向量搜索 Playground)

与现有方案对比

维度 SQLite Qdrant Neo4j SurrealDB TriviumDB
文档型数据 ✅ SQL ❌ 仅过滤 ⚠️ 属性 ✅ SurrealQL ✅ JSON + $gt/$in
向量检索 ⚠️ 需外挂 ✅ HNSW ❌ 需插件 ✅ DiskANN ✅ 自研 QuIVer (BQ+Vamana)
图谱遍历 ⚠️ JOIN 模拟 ❌ ✅ Cypher ✅ 图查询 ✅ 原生邻接表
嵌入式单文件 ✅ ❌ 独立服务 ❌ JVM 服务 ✅ 可切换 ✅ 单 .tdb
混合检索 ❌ ❌ ❌ ⚠️ 手动实现 ✅ 向量+图扩散
零外部依赖 ✅ ✅ ❌ JVM ❌ RocksDB ✅ 纯 Rust
删除代价 ✅ O(1) ⚠️ 重建索引 ⚠️ 重连图边 ⚠️ 墓碑GC ✅ 增量 Tombstone,25% 阈值重建

设计哲学

  1. 三合一原子性:一个 u64 ID 同时映射到向量、Payload、边表。插入原子、删除原子,永不出现 ID 不一致。
  2. 嵌入式优先:没有 Server、没有端口、没有配置文件。import triviumdb 就是全部。
  3. 全自动性能路由:数据量不足 1 万时走 100% 精确 BruteForce,超过后引擎自动构建 QuIVer 索引并无缝切换,开发者无感知。
  4. 可预测的性能:顺序 I/O only(WAL 追加写 + Compaction 顺序重写),SSD 寿命安全。
  5. 索引即加速层:QuIVer 是可丢弃的派生数据(.tdb.quiver 独立文件),丢失后首次查询时自动重建,不依赖也不污染 WAL 真相源。
  6. Rust 安全边界:所有公开 API 均为安全代码。内部仅存在少量经过严格审计的 unsafe(主要分布在 mmap 零拷贝与 SIMD 硬件加速),且附有明确的 SAFETY 安全契约注释。
  7. 安全至上:全引擎零 panic! / 零 unreachable!() 策略。3300+ 测试用例覆盖 94% 以上代码行,涵盖 EMI 比特翻转、WAL 截断恢复、事务预检失败等极端场景,确保在断网、断电、内存污染等恶劣条件下数据库引擎绝不崩溃。

📖 文档

文档 说明
API 完整参考 全部 Python / Node.js / Rust API、参数说明、返回值类型
支持特性详解 架构设计、存储引擎、索引策略、崩溃恢复等技术细节
最佳实践 数据建模范式、性能调优、Hook 使用指南、避坑指南
TQL 查询语言参考 MATCH / FIND / SEARCH 语法、DML 写操作、属性索引
Hook 开发指南 C/C++ FFI 插件编写、Rust Hook 实现、管线诊断实战
测试实践 四层测试体系、属性测试、变异测试、覆盖率度量与 CI 建议
安全设计说明 并发安全、数据完整性、unsafe 审计、FFI 安全边界
CLI 工具指南 tdb 命令行工具安装、用法、REPL/TUI 模式、配置文件

学术引用说明

TriviumDB 的认知检索管线借鉴并实现了以下学术成果(均为本项目基于原始论文的独立 Rust 实现,非调用第三方库):

  1. FISTA (Fast Iterative Shrinkage-Thresholding Algorithm):Beck & Teboulle, 2009, "A Fast Iterative Shrinkage-Thresholding Algorithm for Linear Inverse Problems", SIAM J. Imaging Sciences
  2. DPP (Determinantal Point Process):Kulesza & Taskar, 2012, "Determinantal Point Processes for Machine Learning", Foundations and Trends in Machine Learning
  3. SA-PPR(有限深度 Spreading Activation with Personalized Restart):结合个性化重启思想与扩散激活;本实现不迭代至 PageRank 收敛
  4. Spreading Activation:灵感来源于 Anderson, 1983, "The Architecture of Cognition" 中的扩散激活理论
  5. BM25:Robertson & Zaragoza, 2009, "The Probabilistic Relevance Framework: BM25 and Beyond"
  6. Vamana Graph:Subramanya et al., 2019, "DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node", NeurIPS 2019(QuIVer 的图导航层基于 Vamana 剪枝策略的独立 Rust 实现)
  7. Binary Quantization:Gong et al., 2012, "Iterative Quantization: A Procrustean Approach to Learning Binary Codes", CVPR(QuIVer 的 BQ 签名层基于符号位量化思想)

以下为本项目自研的数据结构与算法命名:

  • QuIVer(Quantized Indexed Vector Retrieval):自研 SOTA 级 ANN 图索引,融合 BQ 二进制量化与 Vamana 图导航,冷热分离架构
  • Parallel Bit-Tag Array(行级布隆特征阵列):基于布隆过滤器思想的 JSON 快速过滤机制
  • Reverse Hash Net(双向哈希边表):O(1) 反向边查找的哈希索引结构
  • Zero-Ghost Node:基于 FreeList 的墓碑复用策略,消除删除节点的幽灵引用
  • 边特异性强化 / 不应期机制:自研的图扩散能量调控策略
  • 分离时间线架构(Separated Timeline):QuIVer 事务安全策略,利用 Infallible Apply 特性避免图索引回滚

📝 引用 QuIVer

如果您在研究中使用了 QuIVer 或 TriviumDB,请引用我们的论文:

@article{quiver2026,
  title   = {QuIVer: Rethinking ANN Graph Topology via Training-Free Binary Quantization},
  author  = {Xiao, Wenxuan and Wang, Zhiyou and Li, Chengcheng},
  journal = {arXiv preprint arXiv:2605.02171},
  year    = {2026},
  url     = {https://arxiv.org/abs/2605.02171}
}

许可证

Apache-2.0

创造者: YoKONCy


社区

本项目已链接并认可 LINUX DO 社区。


🌟 Star History

Star History Chart


Metadata

Release files for triviumdb 0.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for triviumdb 0.8.1
File Size Uploaded Provenance
triviumdb-0.8.1.tar.gz 1.1 MB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for triviumdb 0.8.1
File
triviumdb-0.8.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
triviumdb-0.8.1-cp39-abi3-manylinux_2_28_aarch64.whl CPython 3.9 abi3 Linux glibc 2.28+ ARM64 Details
triviumdb-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
triviumdb-0.8.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
triviumdb-0.8.1-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 9.2 MB

Release files / triviumdb-0.8.1.tar.gz

Download URL triviumdb-0.8.1.tar.gz
Size 1.1 MB
Tags Source
SHA-256 checksum
How to use checksums
f4a68e04c0dce5a32f63e1efe51435498fcbc05f0a53ccc7ded7703be40b2fb7
BLAKE2b-256 checksum
How to use checksums
789438d71df9eb973216853ad303628ed7f8d5414fa54ede5e98bf6c78aff144
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / triviumdb-0.8.1-cp39-abi3-win_amd64.whl

Download URL triviumdb-0.8.1-cp39-abi3-win_amd64.whl
Size 1.6 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
00739cd7431af024b38f34f4db97068f667eeb8d1bb302bdb19c45de9dbeb646
BLAKE2b-256 checksum
How to use checksums
6c8255abe8174f647991dc8d9271a557991bc7292e0106ffd76449ce59f16e44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / triviumdb-0.8.1-cp39-abi3-manylinux_2_28_aarch64.whl

Download URL triviumdb-0.8.1-cp39-abi3-manylinux_2_28_aarch64.whl
Size 1.6 MB
Tags CPython 3.9 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
b7ad4fc7da9aa1a8af4ed35d32cc00fb455b3d6d4b2723168c17ae2aa9b968d7
BLAKE2b-256 checksum
How to use checksums
ae144d21d21df60354bb7aede635c0b55ed14a23ba9b7858fa83c564989e8e8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / triviumdb-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL triviumdb-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
d349b5a4a2e27a51c07d8e1d59b889a48842977a0e61d09f206b9bfb80c94c55
BLAKE2b-256 checksum
How to use checksums
ada8ed6c31fa50a2ff872ed783ef138ac082512d9985bba9b474555a0e959b2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / triviumdb-0.8.1-cp39-abi3-macosx_11_0_arm64.whl

Download URL triviumdb-0.8.1-cp39-abi3-macosx_11_0_arm64.whl
Size 1.5 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c759fc083de87e58b42d12396e3988774d1ad3253f5a772323104cc2905d1809
BLAKE2b-256 checksum
How to use checksums
784a932a458c41591cc1a4e96382a6c14510cd1db6f6723f4d4c92e749a3b7c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / triviumdb-0.8.1-cp39-abi3-macosx_10_12_x86_64.whl

Download URL triviumdb-0.8.1-cp39-abi3-macosx_10_12_x86_64.whl
Size 1.7 MB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a4b4213c13413bf1003b7a80c34e665d9bcf31f4254c78e5687c5892d54e117c
BLAKE2b-256 checksum
How to use checksums
777c3b6d0305c155884e867348d6d149b4dcee74e528b17f3b996e3ee9ce7047
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Security for triviumdb 0.8.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page