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
Match: Given a search string, find its best fuzzy match in a block of
plain text. Weighted for both accuracy and location.
Patch: Apply a list of patches onto plain text. Use best-effort to apply
patch even when the underlying text doesn't match.
Diff Match and Patch libraries are currently available in Java,
contains only Python implementation. Regardless of language, each
library features the same API and the same functionality. All versions
also have comprehensive test harnesses.