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?
Advertisement
Answer
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.