操作转换实现(非javascript)

操作转换实现(非javascript),java,ruby,transform,operational,Java,Ruby,Transform,Operational,我希望在web站点的服务器端实现基于纯文本的多用户更改 您可以推荐一种非javascript实现吗?考虑一下infinote py infinote是JInfinote的python端口,提供了一个协作文本编辑协议(采用),可用于编写多用户协作文本编辑器。HWIOS项目中使用了infinote 考虑Google Diff Match修补程序-纯文本的Diff、Match和修补程序库: “Diff Match和Patch库提供了强大的算法来执行同步纯文本所需的操作。” 差异:比较两个纯文本块并高效

我希望在web站点的服务器端实现基于纯文本的多用户更改

您可以推荐一种非javascript实现吗?

考虑一下infinote

py infinote是JInfinote的python端口,提供了一个协作文本编辑协议(采用),可用于编写多用户协作文本编辑器。HWIOS项目中使用了infinote


考虑Google Diff Match修补程序-纯文本的Diff、Match和修补程序库:

“Diff Match和Patch库提供了强大的算法来执行同步纯文本所需的操作。”

差异:比较两个纯文本块并高效地返回差异列表

差异演示 匹配:给定搜索字符串,在纯文本块中查找其最佳模糊匹配。为精度和位置加权

比赛演示 补丁:在纯文本上应用补丁列表。即使基础文本不匹配,也要尽最大努力应用修补程序

补丁演示 目前可用java、javascript、C++、c++、目标C、Lua和Python。无论使用何种语言,每个库都具有相同的API和相同的功能。所有版本都有全面的测试线束


您可以找到它。

这是另一个非常有趣的实现,它将google wave的操作转换与jedit集成在一起:


OpenCoweb是一种流行的OT实现。有几种服务器实现是用不同的语言编写的。

简单的参考实现,我将在接下来的几个月里通过添加更复杂的内容来改进它

现在它有:

  • 简单的文本操作;保留、插入、删除及其相互之间的转换
  • 文本上的注释和转换
  • 生成更改并将其应用于文本

Google wave图书馆,请点击此处: