@可持久流/服务器
持久流协议的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