@reinsjs/store-sqlite

中文文档
0.3.3发布于 2026/11/02MITTypeScriptES Module

缰绳- sqlite支持的EventLog / BlobStore / MemoryStore。一个SQL层,驱动程序由运行时提供(node:sqlite, bun:sqlite)

中文使用文档
文档目录3 节
  1. 布局
  2. 验证
  3. 文档

@reinsjs / store-sqlite

SQLite-backed EventLog, BlobStore 和 MemoryStore 用于 缰绳。一个SQL层,由运行时提供的驱动程序:Node 22.13+ node:sqlite,包子船 bun:sqlite。主入口没有 node:* 导入,只需要一个对象 exec(sql) 和 prepare(sql).

pnpm add @reinsjs/store-sqlite
// Node
import { sqliteStores } from "@reinsjs/store-sqlite"
import { openSqlite } from "@reinsjs/store-sqlite/node"

const store = sqliteStores(openSqlite("./agent.db"))   // WAL on by default; ":memory:" for tests

// Bun
import { Database } from "bun:sqlite"
const store = sqliteStores(new Database("./agent.db"))

sqliteStores(db, { memoryTable }) 如果缺少表,则创建表并返回 { log, blobs, memory }准备好了 createAgent({ store }).

布局

表格键控的笔记
reins_eventssession_id, seq扩展; seq 每个会话必须是连续的(存储强制它并抛出 seq_conflict)
reins_blobssession_id, id泄漏的工具结果和其他大的有效载荷
reins_memory (可配置)path模型的内存文件; memoryTable 让每个角色或租户拥有自己的表

根据表名进行验证 ^[A-Za-z_][A-Za-z0-9_]{0,62}$ 在组装任何SQL之前-标识符不能绑定为参数,因此此白名单是注入保护。只有内存表是可重命名的;事件和blob由 session_id 故意的。

fork(from, atSeq, to) 逐字复制会话前缀(id和 seq 保存)在一条语句中转换为空会话。

验证

传入一致性套件 @reinsjs/core/testing。发布的 dist 使 node:sqlite 协议前缀(tup的默认值将把它剥离为一个裸 sqlite,仅在运行时失败 pnpm check:dist 警卫)。

Cloudflare Workers不是这个包的目标;持久对象SQLite将是一个单独的存储。

文档

docs/系统全景图_模块盘点/store.md 和 docs/archive/implementation-plans/2026-09-08-技术方案v1.0.md §5 -中文,在库根。

MIT©2026 newate Limited

版本与发布记录

@reinsjs/store-sqlite 共发布 8 个版本,首次发布于 2026/09/14;过去 12 个月发布了 8 个版本。

版本发布日期距今
0.3.3latest2026/11/021 天前
0.3.22026/10/313 天前
0.3.12026/10/303 天前
0.3.02026/09/221 个月前
0.2.12026/09/151 个月前
0.2.02026/09/151 个月前

关于 @reinsjs/store-sqlite 的常见问题

@reinsjs/store-sqlite 是什么?

缰绳- sqlite支持的EventLog / BlobStore / MemoryStore。一个SQL层,驱动程序由运行时提供(node:sqlite, bun:sqlite)

如何安装 @reinsjs/store-sqlite?

在项目目录运行 npm install @reinsjs/store-sqlite,或使用 pnpm add / yarn add / bun add。

@reinsjs/store-sqlite 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@reinsjs/store-sqlite 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@reinsjs/store-sqlite 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.13。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@reinsjs/store-sqlite 可以商用吗?

@reinsjs/store-sqlite 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@reinsjs/store-sqlite 还在维护吗?

最新版本 0.3.3 发布于 2026/11/02(1 天前);至今共发布 8 个版本,其中过去 12 个月发布了 8 个;首次发布于 2026/09/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。