@durable-streams/server

中文文档
0.3.9发布于 2026/09/11Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 44.6万

持久流的Node.js 参考服务器执行

中文使用文档
文档目录11 节
  1. 安装
  2. 概览
  3. 快速启动
  4. 存储模式
  5. 内存( 默认)
  6. 文件备份
  7. 生命周期钩
  8. API 密码
  9. 持久性测试服务员
  10. 测试您的执行
  11. 许可证

@可持久流/服务器

持久流协议的Node.js参考服务器执行.

安装

npm install @durable-streams/server

概览

这个软件包为Node.js提供了持久流协议的参考执行. 它既支持内存又支持文件备份的存储模式,使其适合开发,测试,以及原型. 用于生产部署,使用 凯迪插件 或者说 电云。 。 。 .

关于独立的二进制选项,参见: 基于凯迪服务器。 。 。 .

快速启动

import { DurableStreamTestServer } from "@durable-streams/server"

const server = new DurableStreamTestServer({
  port: 4437,
  host: "127.0.0.1",
})

await server.start()
console.log("Server running on http://127.0.0.1:4437")

存储模式

内存( 默认)

快速,电平存储用于开发和测试. 奥米 dataDir 用于模拟 :

const server = new DurableStreamTestServer({ port: 4437 })

文件备份

持续存储作为日志文件和元数据 LMDB 的流 :

const server = new DurableStreamTestServer({
  port: 4437,
  dataDir: "./data/streams",
})

生命周期钩

音轨流创建和删除事件 :

const server = new DurableStreamTestServer({
  port: 4437,
  onStreamCreated: (event) => {
    console.log(`Stream created: ${event.path} (${event.contentType})`)
  },
  onStreamDeleted: (event) => {
    console.log(`Stream deleted: ${event.path}`)
  },
})

API 密码

持久性测试服务员

interface TestServerOptions {
  port?: number                          // Default: 4437
  host?: string                          // Default: "127.0.0.1"
  longPollTimeout?: number               // Default: 30000 (ms)
  dataDir?: string                       // File-backed storage; omit for in-memory
  onStreamCreated?: StreamLifecycleHook  // Hook for stream creation
  onStreamDeleted?: StreamLifecycleHook  // Hook for stream deletion
  compression?: boolean                  // Default: true
  cursorIntervalSeconds?: number         // Default: 20
  cursorEpoch?: Date                     // Epoch for cursor calculation
}

class DurableStreamTestServer {
  constructor(options?: TestServerOptions)
  start(): Promise<void>
  stop(): Promise<void>
  readonly port: number
  readonly baseUrl: string
}

## Exports

```typescript
export { DurableStreamTestServer } from "./server"
export { StreamStore } from "./store"
export { FileBackedStreamStore } from "./file-store"
export { encodeStreamPath, decodeStreamPath } from "./path-encoding"
export { createRegistryHooks } from "./registry-hook"
export {
  calculateCursor,
  handleCursorCollision,
  generateResponseCursor,
  DEFAULT_CURSOR_EPOCH,
  DEFAULT_CURSOR_INTERVAL_SECONDS,
  type CursorOptions,
} from "./cursor"
export type {
  Stream,
  StreamMessage,
  TestServerOptions,
  PendingLongPoll,
  StreamLifecycleEvent,
  StreamLifecycleHook,
} from "./types"

测试您的执行

使用兼容测试套件验证协议的合规性 :

import { runConformanceTests } from "@durable-streams/server-conformance-tests"

runConformanceTests({
  baseUrl: "http://localhost:4437",
})

许可证

阿帕奇 - 2.0

版本与发布记录

@durable-streams/server 共发布 22 个版本,首次发布于 2025/12/24;过去 12 个月发布了 22 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.3.9latest2026/09/112 个月前
0.3.82026/07/173 个月前
0.3.72026/06/035 个月前
0.3.62026/06/035 个月前
0.3.52026/06/015 个月前
0.3.42026/05/285 个月前

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

@durable-streams/server 是什么?

持久流的Node.js 参考服务器执行

如何安装 @durable-streams/server?

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

@durable-streams/server 支持 TypeScript 吗?

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

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

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

@durable-streams/server 需要什么版本的 Node.js?

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

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

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

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

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

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

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