![]()
rrweb
(全新!)rrweb Cloud —— 托管版 rrweb 后端现已上线
rrweb 是 "record and replay the web"(录制并回放 Web)的缩写,它是一个用于录制并回放用户在网页上交互操作的工具。
指南
项目结构
rrweb 主要由以下几个部分组成:
- rrweb-snapshot,包含快照(snapshot)与重建(rebuild)两大功能。快照用于将 DOM 及其状态转换为可序列化的数据结构,并附带唯一标识;重建功能则将快照还原为对应的 DOM。该包可以独立使用,为当前网页状态生成一份基于静态 HTML 的“截图”,其中所有 JavaScript 均被禁用。
- record,在初始快照的基础上,记录用户浏览网页过程中所有的 HTML 状态变化(变更,即 mutation)以及用户交互。多次页面加载可以串联成一段完整的录制。
- replay,重建初始快照,并回放后续的事件列表或事件流,从而呈现一段“会话回放”。
- rrweb-player,构建在 replay 包之上的播放器 UI,提供暂停、快进、拖拽跳转至任意时间点播放等基于图形界面的功能。
路线图
- ✅ 存储引擎:对大规模 rrweb 会话数据进行去重
- Token 效率更高的 AI 会话回放格式(进行中)
- 基于新的插件 API 提供更多插件,包括:
- XHR 插件
- fetch 插件
- GraphQL 插件
- ...
内部设计
贡献指南
由于我们希望录制端与回放端共享一套强类型的数据结构,rrweb 采用 TypeScript 开发,以提供更强的类型支持。
有关最新的环境搭建、测试以及 pull request 工作流程,请参阅参与 rrweb 贡献。
除了添加集成测试和单元测试之外,rrweb 还提供了一个 REPL 测试工具。
赞助商
成为赞助商,你的 logo 将连同指向你网站的链接一起展示在 GitHub 的 README 中。
金牌赞助商 🥇
银牌赞助商 🥈
铜牌赞助商 🥉
支持者
核心团队成员
Juice10 提供 rrweb 咨询服务 | eoghanmurray | Yun Feng |
谁在使用 rrweb?
![]() | ![]() | ||
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | |
![]() | ![]() | ||
![]() |











