@durable-streams/server-cloudflare

中文文档
0.1.1发布于 2026/08/12Apache-2.0TypeScriptESM + CJS零依赖近 30 天下载 2.5万

Cloudflare Workers + 持久对象上的持久流协议服务器——导出流对象类,并在自己的工人中挂载处理器

中文使用文档
文档目录7 节
  1. 使用量
  2. 认证
  3. 遵约
  4. 版式
  5. 开发
  6. 设计说明
  7. 许可证

@可持久流/服务器-云浮lare

符合者 持久流 协议服务器启用 云花板工人+持久性物体,在 TypeScript 中——您在自己的“工作员”中挂载的库.

每个流都是它自己的持久对象实例(idFromName(streamPath)),通过DO输入/输出门免费给出协议的每流序列化和耐久性. 所有状态都活在 DO SQLite;长波服务员和SSE 尾巴在对象中被持有;滑动的 TTL 使用 DO 提醒;分叉语义(被重新计算出软-去除,被缝合的读取,级联GC)通过 DO-到 DO RPC 在对象之间工作.

使用量

pnpm add @durable-streams/server-cloudflare   # or npm install / yarn add

您的工人条目 :

// src/index.ts
import { createStreamsHandler } from "@durable-streams/server-cloudflare"

export { StreamObject } from "@durable-streams/server-cloudflare"

export default {
  fetch: createStreamsHandler(),
}

您的wrangler配置 — DO 绑定 必须是命名 STREAMS (fork semics do-to-DO RPC通过它)并且需要SQLite迁移:

// wrangler.jsonc
{
  "name": "my-streams",
  "main": "src/index.ts",
  "compatibility_date": "2025-06-01",
  "durable_objects": {
    "bindings": [{ "name": "STREAMS", "class_name": "StreamObject" }],
  },
  "migrations": [{ "tag": "v1", "new_sqlite_classes": ["StreamObject"] }],
}

图书馆类型 参考 工人运行时间类型(DurableObjectNamespace——在您的项目中以 wrangler types。 。 。 .

溪流居住于 /<path> ——完整请求路径名为流路径. 如果您将处理器挂载在更大的工作人体内,则只路径流 URL 到它(各流之间的叉引用使用这些路径,所以保持它们的稳定) 。 见 chat-cloudflare 实例 一个TanStack Start的应用程序 和这个服务器共享一个工作人.

认证

议定书赋予执行权。 默认情况下,如果 AUTH_TOKEN var/secret 设置和不空, 每一份请求必须携带 Authorization: Bearer <token> (单位:千美元)npx wrangler secret put AUTH_TOKEN; 否则服务器已经打开 。 通过自己的钩子来取而代之——返回 a Response 要拒绝的, undefined 允许:

export default {
  fetch: createStreamsHandler({
    auth: async (request, env) => {
      if (!(await isAuthorized(request, env))) {
        return new Response("Unauthorized", { status: 401 })
      }
      return undefined
    },
  }),
}

createStreamsHandler({ cors: false }) 省略允许默认的 CORS 头.

遵约

经验证 @durable-streams/server-conformance-tests 整个套间,包括叉子语义和自制围栏: 326通过,0失败 (与参考服务器相同;6个跳出是套房自己的) subscriptions- 网钩测试,默认关闭 - 实验 __ds 未执行订阅控制平面并返回 404) (中文(简体) ).

pnpm conformance   # boots template/index.ts via wrangler dev (test/wrangler.jsonc) and runs the suite

版式

路径这是什么
src/index.ts库条目:导出 StreamObject, (中文(简体) ), createStreamsHandler,类型
src/handler.ts工人路由器厂:路由线、CORS预飞、认证钩
src/stream-object.tsStreamObject Do:所有协议语义(PUT/GET/POST/DELETE/HEAD,长波,SSE,出品人,关闭,TTL,叉)
src/store.tsSQLite 访问层 (meta 编号 : messages 编号 : producers 页:1
src/producer.ts纯一能-出产国验证机
src/json.tsJSON 模式帮助器( 阵列平整、 碎片存储、 阵列包装读取)
src/cursor.tsCDN 缓存折叠光标数学
template/index.ts工人输入符合性测试靴(上面的用法片段,完整)
test/遵守规则:靴子 wrangler dev 运行共享套房

开发

pnpm build       # emit dist/ (library build)
pnpm conformance # full conformance suite against a local wrangler dev instance
pnpm typecheck

线程和格式化来自 repo 根(pnpm lint, (中文(简体) ), pnpm format 在单发根.

设计说明

  • 减值 使用参考格式 <readSeq>_<byteOffset> (16位零加法,可按词法排序);每封信推进字节由 payload + 5 (frame haybook),匹配参考服务器字节换字节.
  • 货币:请求体在任何状态被检查之前都会被读取;每个验证-当时-写入块在SQLite API上是同步的,所以DO事件循环使它成为原子——不需要锁.
  • TTL 电话 在访问时懒惰地执行(准确) 财务报告和审定财务报表 以 DO 提醒( 仓库回收) , 因此 1秒 TTL 即时失效 .
  • 车身盖 每个附件为~1.9MB(DO SQLite的2MB值限制);较大的附件获得协议 413。 。 。 .
  • 叉子: 创建分叉解析法验证 + 重新计算来源的 DO(forkAcquire);删除一个引用的流软删除它(410 Gone),最后一叉放出会连结到链条上硬地清洗.

许可证

阿帕奇 - 2.0。协议/验证逻辑从 Apache-2.0 移植 参考服务器 (可转让流捐助者)——见 通知 和每个文件的归属标题.

版本与发布记录

@durable-streams/server-cloudflare 共发布 1 个版本,首次发布于 2026/08/12;过去 12 个月发布了 1 个版本。

版本发布日期距今
0.1.1latest2026/08/123 个月前

关于 @durable-streams/server-cloudflare 的常见问题

@durable-streams/server-cloudflare 是什么?

Cloudflare Workers + 持久对象上的持久流协议服务器——导出流对象类,并在自己的工人中挂载处理器

如何安装 @durable-streams/server-cloudflare?

在项目目录运行 npm install @durable-streams/server-cloudflare,或使用 pnpm add / yarn add / bun add。

@durable-streams/server-cloudflare 支持 TypeScript 吗?

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

@durable-streams/server-cloudflare 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@durable-streams/server-cloudflare 可以商用吗?

@durable-streams/server-cloudflare 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@durable-streams/server-cloudflare 的下载量有多少?

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

@durable-streams/server-cloudflare 还在维护吗?

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