Diff, Match and Patch Library code.google.com/p/google-diff-match-patch/ Neil Fraser
This library is currently available in seven different ports, all using the same API. Every version includes a full set of unit tests.
C++:
-
Ported by Mike Slemmer.
-
Currently requires the Qt library.
C#:
-
Ported by Matthaeus G. Chajdas.
Dart:
-
The Dart language is still growing and evolving, so this port is only as stable as the underlying language.
Java:
-
Included is both the source and a Maven package.
JavaScript:
-
diff_match_patch_uncompressed.js is the human-readable version. Users of node.js should 'require' this uncompressed version since the compressed version is not guaranteed to work outside of a web browser.
-
diff_match_patch.js has been compressed using Google's internal JavaScript compressor. Non-Google hackers who wish to recompress the source can use: dean.edwards.name/packer/
Lua:
-
Ported by Duncan Cross.
-
Does not support line-mode speedup.
Objective C:
-
Ported by Jan Weiss.
-
Includes speed test (this is a separate bundle for other languages).
Python:
-
Two versions, one for Python 2.x, the other for Python 3.x.
-
Runs 10x faster under PyPy than CPython.
Demos:
-
Separate demos for Diff, Match and Patch in JavaScript.