Search code examples
javarubyoperational-transform

Operational Transform Implementation (not javascript)


I'm looking to implement multi-user operational transform just for plain-text based changes on the server-side on a web-site.

Is there a non-javascript implementation that you can recommend?


Solution

  • Consider Google-Diff-Match-Patch - Diff, Match and Patch libraries for Plain Text:

    "The Diff Match and Patch libraries offer robust algorithms to perform the operations required for synchronizing plain text."

    Diff: Compare two blocks of plain text and efficiently return a list of differences.

    Diff Demo Match: Given a search string, find its best fuzzy match in a block of plain text. Weighted for both accuracy and location.

    Match Demo Patch: Apply a list of patches onto plain text. Use best-effort to apply patch even when the underlying text doesn't match.

    Patch Demo Currently available in Java, JavaScript, C++, C#, Objective C, Lua and Python. Regardless of language, each library features the same API and the same functionality. All versions also have comprehensive test harnesses.

    You can find it here.