news 2026/9/5 18:52:59

Yjs 实战指南:从零跑通 CRDT 实时协同编辑到生产

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Yjs 实战指南:从零跑通 CRDT 实时协同编辑到生产

Yjs 实战指南:从零跑通 CRDT 实时协同编辑到生产

【免费下载链接】yjsShared data types for building collaborative software项目地址: https://gitcode.com/GitHub_Trending/yj/yjs

Yjs 是一个 CRDT(不依赖中心服务器就能自动合并冲突的数据结构)框架,把 Map、Array、Text 变成可共享的数据类型:任何一端的修改会自动分发到其他节点并无缝合并。实时协同、离线编辑、撤销重做、版本快照全部内置,是构建协作软件的核心层。

⚡ 5 分钟克隆并跑通测试

这个仓库是 Node.js 库本身,没有单独的构建步骤,所以"跑通"的标志是测试套件全绿。确认本机装了 Node.js 22 以上(npm 8+),然后几条命令就能完成克隆、装依赖和验证:

git clone https://gitcode.com/GitHub_Trending/yj/yjs cd yjs && npm install npm test

测试覆盖共享数组、Map、文本、XML 类型,以及撤销重做、快照等核心路径。跑完可以写个小 demo 找手感:创建一个 Doc,用doc.getArray('items')拿到共享数组并 push 一个元素,就完成了一次共享写入。

它还能做什么:CRDT 内核与生态

往内部看,Yjs 本质是一个列表 CRDT:数组是任意项的列表,文本是字符的列表(连续字符还会合并成单个节点省空间),Map 也被折成列表,每个 key 以最后写入的项为准。每个客户端首次写入时拿到一个随机 53 位 clientID,并发操作的排序完全由它决定,因此任何节点算出的合并结果都一致。

Yjs 本身不绑死网络层:点对点(P2P)直连、WebSocket 中转都行。编辑器生态提供了 ProseMirror、Quill、CodeMirror 等富文本编辑器的现成绑定,光标和选区天然共享;服务端有 Node.js 同步服务器可用,状态能持久化到数据库。共享光标、撤销/重做、版本快照都是一等能力,项目对大文档和无限用户数做了专门调优,实现细节见 INTERNALS.md。

部署前必查三件事

上生产前关注三个方向:同步传输层选 P2P 还是服务器中转,文档状态持久化放在哪(通常是 Node.js 服务器加数据库);快照的存储格式与版本兼容性;大文档下的内存占用与垃圾回收策略。这些细节建议直接对照官方文档 docs.yjs.dev,结合自己的场景落地。

【免费下载链接】yjsShared data types for building collaborative software项目地址: https://gitcode.com/GitHub_Trending/yj/yjs

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 18:51:51

15分钟跑通多语种语音转文字:faster-whisper 实战指南

15分钟跑通多语种语音转文字:faster-whisper 实战指南 【免费下载链接】faster-whisper Faster Whisper transcription with CTranslate2 项目地址: https://gitcode.com/GitHub_Trending/fa/faster-whisper 为什么选 faster-whisper:4倍速的语音…

作者头像 李华
网站建设 2026/9/5 18:51:27

GitHub中文排行榜实战指南:发现高分中文开源项目的终极武器

GitHub中文排行榜实战指南:发现高分中文开源项目的终极武器 作为一名开发者,你是否曾在GitHub的英文海洋中迷失方向?面对海量的开源项目,想要找到高质量的中文项目就像大海捞针。每次学习新技术,你都要花费大量时间筛…

作者头像 李华
网站建设 2026/9/5 18:51:11

【工具】DBeaver 导出数据数量不对

目录一、导出问题一、导出问题 DBeaver 是一款开源且免费的数据库管理工具,我经常用它来导出项目上急需统计的数据。有一次我导出 csv 时,发现文件里的数据数量和实际的对不上,数据库里大概有 10w 条数据,但导出来的只有 100 多条…

作者头像 李华
网站建设 2026/9/5 18:44:46

DIY示波器实测:性能边界与嵌入式调试应用

把DIY示波器性能实测这件事讲清楚之前,先泼半盆冷水。任何示波器都不是靠一句“绝对超出你想象”就能下结论的,它本质上就是带宽、采样率、触发、存储深度和前端信噪比互相妥协的测试设备。会判断边界的人,能把低成本方案用到很顺手&#xff…

作者头像 李华