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.
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.
Currently available in Java, JavaScript, Dart, C++, C#, Objective C, Lua and Python. Regardless of language, each library features the same API and the same functionality. The C++ library provides a Qt-based interface.