Automerge 是一个专门为“本地优先(local-first)”应用设计的开源数据同步库,核心目标是在没有集中服务器的情况下,让不同设备上的用户能够并发修改同一份数据,并在重新连接网络时自动、无冲突地合并这些修改。
该项目已发布 3.0,这是一次性能优化和 API 重构的重要版本,主要实现了:
1. 显著降低内存使用
Automerge 采用本地优先(local‑first)架构,记录所有文档修改历史,因此历史文档在编辑时可能占用大量内存。3.0 版本采用了在运行时也使用压缩列式存储,相较于旧版本内存使用减少超过 10 倍。例如:在 Automerge 2 中将《白鲸》(Moby Dick)粘贴进文档时,会占用约 700 MB;在 3.0 中仅需约 1.3 MB。
此外,内存节省也使得在高并发、大文档场景的同步服务端运行变得更加稳定可靠。同时,有示例显示加载历史文档时间从“未能在 17 小时内完成”缩短到仅 9 秒。
2. API 清理与简化
在文本处理方面,Automerge 1.0 使用原生 JS 字符串处理非协作文本、使用 Text
类处理协作文本;2.0 中引入 next
API,将协作文本设为默认,使用普通字符串,而非协作文本改为 RawString
类。3.0 正式将 next
API 设为默认,移除旧的 Text
API,并将 RawString
更名为 ImmutableString
,提升了 API 的一致性与清晰度。
3. 兼容升级无缝
Automerge 3.0 保持了与 2.x 版本相同的文件格式,且 API 近乎向后兼容。若你已在使用 Automerge,可直接升级;特别是通过 @automerge/automerge-repo
或 @automerge/react
安装,将默认使用 3.0 版本。详细迁移步骤请参考官方迁移指南。
详情查看 https://automerge.org/blog/automerge-3/
还没有评论,来说两句吧...