Loro-CRDT 1.5.0版本发布:增强实时协作能力的创新特性
Loro是一个基于CRDT(Conflict-Free Replicated Data Type)技术的分布式协作框架,它通过创新的数据结构设计解决了分布式系统中数据一致性的难题。在1.5.0版本中,Loro引入了两个重要的新特性:pre-commit和first-commit-from-peer钩子机制,以及全新的EphemeralStore临时状态管理方案,进一步提升了实时协作场景下的开发体验和性能表现。
强大的提交钩子机制
在分布式协作系统中,操作的提交和同步是核心流程。Loro 1.5.0版本引入了两个关键的钩子机制,为开发者提供了更精细的控制能力。
pre-commit钩子:提交前的最后干预点
pre-commit钩子允许开发者在每次提交操作执行前修改提交参数。这个特性特别有价值,因为在Loro中,commit()方法经常被隐式调用,比如在doc.import、doc.export、doc.checkout等方法中都会触发自动提交。如果没有这个钩子,开发者想要为每个提交添加自定义信息时,可能会遗漏这些隐式提交场景。
const doc = new LoroDoc();
doc.setPeerId(0);
doc.subscribePreCommit((e) => {
e.modifier.setMessage("test").setTimestamp(Date.now());
});
这个钩子的一个高级应用场景是构建Merkle DAG(有向无环图)来表示编辑历史。通过结合exportJsonInIdSpan方法,开发者可以为每个变更计算哈希值,形成完整的变更链:
doc.subscribePreCommit((e) => {
const changes = doc.exportJsonInIdSpan(e.changeMeta);
const hash = crypto.createHash("sha256");
// 计算变更内容的哈希
const sha256Hash = hash.digest("hex");
e.modifier.setMessage(sha256Hash);
});
这种机制不仅能够确保变更历史的完整性验证,还能为分布式系统提供更强大的审计能力。
first-commit-from-peer钩子:新参与者的欢迎仪式
first-commit-from-peer钩子在某个peer首次向文档提交操作时触发。这个特性非常适合用来初始化peer相关的元数据,比如用户标识信息:
doc.subscribeFirstCommitFromPeer((e) => {
doc.getMap("users").set(e.peer, "user-" + e.peer);
});
这种设计模式使得用户管理系统可以自然地融入文档协作流程,而不需要额外的同步机制。
EphemeralStore:轻量级临时状态管理
在实时协作应用中,除了持久化的文档内容外,还需要处理各种临时状态,如光标位置、选中区域等。传统解决方案通常使用Awareness机制,但随着应用复杂度增加,Awareness的全量同步模式会带来性能问题。
Loro 1.5.0引入了EphemeralStore作为Awareness的替代方案,它基于时间戳的最后写入胜出(LWW)策略,提供了更灵活的键值存储能力:
const store = new EphemeralStore();
store.set("cursor-position", {x: 100, y: 200});
store.set("online-users", ["UserA", "UserB"]);
与Awareness相比,EphemeralStore具有以下优势:
- 支持细粒度的键值更新,只有变更的部分会被同步
- 可以按需编码特定键的数据,减少网络传输量
- 提供统一的事件监听机制,简化状态管理
其他改进
1.5.0版本还包含了一些重要的修复和增强:
- 修复了在文本末尾换行符处应用多个样式的问题
- 新增了将当前事务中的操作以JSON格式导出的能力
这些改进使得Loro在处理富文本内容时更加可靠,同时也为开发者提供了更强大的调试和分析工具。
总结
Loro 1.5.0通过引入创新的钩子机制和临时状态管理方案,为构建复杂的实时协作应用提供了更强大的工具集。pre-commit和first-commit-from-peer钩子使得开发者能够更精细地控制协作流程,而EphemeralStore则为临时状态管理提供了更高效的解决方案。这些特性共同推动了CRDT技术在实时协作领域的应用边界,使得开发高性能、可靠的协作应用变得更加简单。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00