代码之家  ›  专栏  ›  技术社区  ›  hawkeye

操作转换实现(不是javascript)[关闭]

  •  5
  • hawkeye  · 技术社区  · 14 年前

    我希望实现多用户 operational transform 仅用于网站服务器端基于纯文本的更改。

    有没有可以推荐的非javascript实现?

    5 回复  |  直到 14 年前
        1
  •  2
  •   hawkeye    13 年前

    考虑Google Diff Match Patch-纯文本的Diff、Match和Patch库:

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

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

    差异演示 匹配:给定一个搜索字符串,在纯文本块中找到它的最佳模糊匹配。对精度和位置进行加权。

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

    补丁演示 目前在Java,JavaScript,C++,C语言,Object C,Lua和Python中可用。不管语言如何,每个库都具有相同的API和相同的功能。所有版本也有全面的测试线束。

    你可以找到它 here .

        2
  •  0
  •   hawkeye    13 年前

    考虑Py infinote。

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

    https://github.com/sveith/jinfinote

        3
  •  0
  •   hawkeye    13 年前

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

    https://github.com/djspiewak/cccp

        4
  •  0
  •   dmonad    10 年前

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

        5
  •  0
  •   Stanislav Levental    8 年前

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

    现在它有:

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

    https://github.com/slevental/operational-transformation