我正在寻找仅针对网站服务器端基于纯文本的更改实现多用户操作转换。
有没有可以推荐的非 JavaScript 实现?
考虑 Google-Diff-Match-Patch - 纯文本的 Diff、Match 和 Patch 库:
“Diff Match 和 Patch 库提供了强大的算法来执行同步纯文本所需的操作。”
Diff:比较两个纯文本块并有效地返回差异列表。
Diff Demo Match:给定一个搜索字符串,在纯文本块中找到它的最佳模糊匹配。对准确性和位置进行加权。
匹配演示补丁:将补丁列表应用于纯文本。即使底层文本不匹配,也要尽最大努力应用补丁。
补丁演示 目前可用于 Java、JavaScript、C++、C#、Objective C、Lua 和 Python。无论使用哪种语言,每个库都具有相同的 API 和相同的功能。所有版本还具有全面的测试工具。
你可以在这里找到它。
这是另一个非常有趣的实现,将 google wave 的操作转换与 jedit 集成:
考虑 Py-infinite。
py-infinote 是 JInfinnote 的一个 python 端口,提供了一个协作文本编辑协议(adOPTed),可用于编写多用户协作文本编辑器。HWIOS 项目中使用了 Py-infinenote。
OpenCoweb 是一种流行的 OT 实现。有几种用不同语言编写的服务器实现。
简单的参考实现,我将在接下来的几个月通过添加更复杂的东西来改进它;
现在它有: