@b4run/postgres-storage

中文文档
0.15.8发布于 2026/10/31MITTypeScriptES Module构建来源已验证近 30 天下载 4047

B4. 运行的检查站、线条和许可决定的邮政系统.

中文使用文档
文档目录7 节
  1. 安装
  2. 示例
  3. 运行时间和稳定性
  4. 请求范围运行录用
  5. 相关
  6. 成熟和支持
  7. 许可证

B4.run

@b4run/ postgres- 存储

支持Postgres持续使用B4. 运行的检查站、代理协议线条以及跨应用程序的许可.

当 : 你正在用共享的Postgres 来取代 B4.run 本地的耐用商店.

安装

pnpm add @b4run/postgres-storage pg

示例

import { Pool } from "pg"
import { createPostgresThreadsStore } from "@b4run/postgres-storage"

const pool = new Pool({ connectionString: process.env.DATABASE_URL })
const threadsStore = createPostgresThreadsStore({ pool })

await threadsStore.ready()

// During application shutdown:
await threadsStore.close()
await pool.end()

每个商店都接受 schema (默认) public和 tablePrefix (默认) b4),所以数个 应用程序或部署环境可以共享一个数据库。 两者都必须是小写 SQL 匹配标识符 ^[a-z_][a-z0-9_]*$;如果需要的话,移民通行证会创造出计划。 通过 检查器、线程存储和权限存储的值相同。 应用软件 b4 build 联 合 国 hono 或者说 vercel 目标通过 B4_PG_SCHEMA 财务报告和审定财务报表 B4_PG_TABLE_PREFIX 运行时间绑定代替.

运行时间和稳定性

  • @b4run/postgres-storage 是一个支持的边缘安全应用表面,需要注入结构池。 被测试的边缘路径是当地工人用一个Neon WebSocket游泳池;这不是对每个边缘主机的声称.
  • @b4run/postgres-storage/node 是一个支持的仅节点应用程序表面,可创建 pg 连接字符串中的池.

移民是每个商店的记忆。 除非 ownsPool: true;由节点条目创建的池是商店拥有的. 在应用程序关闭期间关闭商店和呼叫者拥有的集合.

请求范围运行录用

createPostgresRunAdmission({ pool }) 协调一个线程的归属 复制品。 每个请求创建一个实例, 初始化其 ready() 方法,以及 通过它 pool 用于该请求所用的每个运行时间商店。 初始化和 授权查询可在获得之前进行。 打电话 tryAcquire(threadId) 在读取决定运行或接受回调的检查点之前 答对. A 类 false 结果意味着另一个请求拥有线程并可能被重审. 已获取实例拒绝不同的线索; 释放和所有权损失为 终端。 等着 release() 完成或使用 close() 同时关闭这个实例所拥有的一个池。 来电供应的游泳池留下来 打开,除非 ownsPool 已经设定。 节点条目也接受 connectionString。 。 。 .

违约租约为30秒,每10秒续约. leaseDurationMs 财务报告和审定财务报表 heartbeatIntervalMs 接受正整数毫秒;心跳必须是 短于租赁。 过期并更新使用数据库时钟. 观察 signal 在所有权丧失或解除后停止工作。 过期的拥有者不能 更新或承诺运行时间存储写入, 即使在另一个请求接管之后 . 这种协调并不能提供准确的外部工具效应.

一旦获得, pool.query() 在短边栏中执行一个语句 交易. pool.connect() 进一步支持明确 BEGIN (或 START TRANSACTION, (中文(简体) ), COMMIT (或 END),以及 ROLLBACK,带有可选跟踪 分号。 嵌入式交易、保存点、交易控制修改器,以及 在有栅栏的查询中拒绝多个语句。 SQL 文字和评论 可能包含分号。 栅栏 SQL 接受诸如 $1· ; 通过这些参数传递数据。 位置参数以外的美元标志 sQL 文本中的标记和后鞭被拒绝,包括美元引用 字符串和美元标识符。 界值可能包含这些字符. 这个故意限制的 SQL 子集为运行时商店服务; 它不是一个 任意 SQL 执行接口。 围绕个人完成这些交易 存储操作; 不要通过模型生成来保存它们。 一个同步客户端 release() 在提供基础连接之前完成回滚 用于再利用。 释放或失去的入院治疗从未恢复无栅栏进入.

对于自定义的节点取入嵌入,请使用其有栅栏的商店返回录入 从 requestStores迁移 全部 由于活动 栅栏故意拒绝多报表迁移批次。 时间到了 在实际执行清理后,在授权后提出索偿要求并最后确定所有权. 生成 Vercel/ Hono 输出自动提供此接线 .

import {
  createPostgresClientToolCallStore,
  createPostgresPermissionsStore,
  createPostgresPool,
  createPostgresRunAdmission,
  createPostgresThreadsStore,
  postgresCheckpointer,
} from "@b4run/postgres-storage/node"

const requestStores = async () => {
  const pool = createPostgresPool({ connectionString: process.env.DATABASE_URL })
  try {
    const runAdmission = createPostgresRunAdmission({ pool })
    const naming = { pool: runAdmission.pool }
    const stores = {
      checkpointer: postgresCheckpointer(naming),
      clientToolStore: createPostgresClientToolCallStore(naming),
      permissionsStore: createPostgresPermissionsStore(naming),
      threadsStore: createPostgresThreadsStore(naming),
    }
    await Promise.all([runAdmission.ready(), ...Object.values(stores).map((store) => store.ready())])
    return {
      ...stores,
      runAdmission,
      dispose: async () => {
        try { await runAdmission.close() } finally { await pool.end() }
      },
    }
  } catch (error) {
    await pool.end()
    throw error
  }
}

这个栅栏可以围住注入的检查站,线程,权限,以及客户端工具商店. 单独配置的内存和靴子自有的审批赠与商店不包接. 现有管理下的工作空间限制 requestStores 现予保留. 进程本地运行的登记册仍然是不共享嵌入的默认值 允许; 仅共享 Postgres 数据并不能提供执行排除.

成熟和支持

B4.run为1.0前置,其公用地表可以改变. 所有可公布的 B4. 运行包作为一个固定组一起发布; 审查 @b4run/postgres-storage 更改日志 财务报告和审定财务报表 升级指南 升级前。 用于支持, 使用 GitHub 讨论; 报告缺陷 GitHub 问题。 。 。 .

许可证

麻省理工学院. 见 仓库许可证。 。 。 .

版本与发布记录

@b4run/postgres-storage 共发布 23 个版本,首次发布于 2026/09/09;过去 12 个月发布了 23 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.15.8latest2026/10/317 天前
0.15.72026/10/2810 天前
0.15.52026/10/2712 天前
0.15.42026/10/2612 天前
0.15.22026/10/2514 天前
0.15.12026/10/2414 天前

关于 @b4run/postgres-storage 的常见问题

@b4run/postgres-storage 是什么?

B4. 运行的检查站、线条和许可决定的邮政系统.

如何安装 @b4run/postgres-storage?

在项目目录运行 npm install @b4run/postgres-storage,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@langchain/core(^1.2.12)、@langchain/langgraph-checkpoint(^1.1.5)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@b4run/postgres-storage 支持 TypeScript 吗?

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

@b4run/postgres-storage 支持 ESM 还是 CommonJS?

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

@b4run/postgres-storage 需要什么版本的 Node.js?

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

@b4run/postgres-storage 可以商用吗?

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

@b4run/postgres-storage 的下载量有多少?

根据 npm 官方下载统计,@b4run/postgres-storage 在 2026/10/08 – 2026/11/06 这 30 天内被下载 4,047 次,日均约 135 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@b4run/postgres-storage 还在维护吗?

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