Show HN: RePlaya – 自托管浏览器会话回放,支持实时追踪
摘要
RePlaya 是一款自托管的会话回放工具,它将每个浏览器会话存储为 S2 流,从而无需单独数据库即可实现实时追踪和回放。它包含一个记录器脚本片段和仪表盘。
嗨,HN,我是 s2.dev 的创始人之一。RePlaya (<a href="https://github.com/s2-streamstore/replaya" rel="nofollow">https://github.com/s2-streamstore/replaya</a>) 是一款使用 rrweb (<a href="https://github.com/rrweb-io/rrweb" rel="nofollow">https://github.com/rrweb-io/rrweb</a>) 的自托管浏览器会话回放工具。<p>我想到,为每个会话建立持久流将是此类工具所需功能的更简洁架构基础。作为一项独特功能,它还使实时追踪变得简单直接,因为播放器可以从记录器正在追加的同一流中读取数据。<p>另一种架构可能是使用摄取数据管道进行索引,这带来了复杂性和延迟。你需要将多个数据系统串联起来,比如消息队列、元数据库、对象存储和/或 OLAP 数据库。<p>这里唯一的依赖是 S2,它有一个名为 s2-lite 的开源版本,你可以自托管 (<a href="https://news.ycombinator.com/item?id=46708055">https://news.ycombinator.com/item?id=46708055</a>)。<p>工作原理:<p>- 每个浏览器会话对应一个 S2 流<p>- 大型 rrweb 事件(如完整快照)被分帧到多个二进制 S2 记录中,并在读取时重新组装<p>- 活动会话通过 S2 读取会话进行实时追踪,并通过 SSE 桥接到浏览器<p>- 会话列表依赖于对反向时间戳进行编码的流名称,因为 S2 返回按字典顺序排列的列表<p>- 依赖栅栏令牌,以便已停止的会话不会被延迟的记录器再次写入<p>- 保留和垃圾回收通过 S2 流配置处理,因此无需后台任务<p>很期待听到大家对这个工具或每个会话一个流模型的看法!
查看缓存全文
缓存时间: 2026/06/02 18:33
新会话出现在列表中,并从其S2流实时追踪——当访客使用应用时,回放和活动馈送会更新。(MP4)
相似文章
我为GitHub仓库上的沙盒化代理运行构建了一个回放层
一个开发者工具,可以在沙盒化的GitHub仓库内记录AI代理的运行过程,捕获终端/浏览器会话,并将其转化为可回放的带解说视频,以提升可观测性。
Replay QA
Replay QA 是一款工具,通过捕获和回放会话,帮助开发人员在用户发现之前找到 bug。
Show HN: Mindwalk – 在代码库的3D地图上回放编码智能体会话
Mindwalk 是一款开源可视化工具,可在代码库的3D地图上回放编码智能体会话,支持 Claude Code 和 Codex 会话日志,并配备本地 Go 服务器和 React/Three.js 前端。
Show HN: Recall – 为 Claude Code 提供完全本地项目记忆
Recall 是一个开源工具,为 Claude Code 提供完全本地、零成本的项目记忆功能。它自动捕获会话历史并将其总结为紧凑的上下文文件,全程不向任何外部 API 发送数据。
Show HN: Sabela – 一个面向Haskell的响应式笔记本
Sabela 是一个面向 Haskell 的响应式笔记本,支持交互式数据科学和函数式响应式编程,并兼容 Python 互操作和 3D 图形。