All Projects → google → Diff Match Patch

google / Diff Match Patch

Licence: apache-2.0
Diff Match Patch is a high-performance library in multiple languages that manipulates plain text.

Programming Languages

python
139335 projects - #7 most used programming language
objective c
16641 projects - #2 most used programming language
dart
5743 projects
C++
36643 projects - #6 most used programming language
C#
18002 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Diff Match Patch

Gsync
gSync is an rsync based library for sending delta updates of files to a remote server.
Stars: ✭ 344 (-92.99%)
Mutual labels:  patch, diff
go-gitdiff
Go library for parsing and applying patches created by Git
Stars: ✭ 41 (-99.16%)
Mutual labels:  diff, patch
deltaq
Fast and portable delta encoding for .NET in 100% safe, managed code.
Stars: ✭ 26 (-99.47%)
Mutual labels:  diff, patch
dif
'dif' is a Linux preprocessing front end to gvimdiff/meld/kompare
Stars: ✭ 18 (-99.63%)
Mutual labels:  diff, text-processing
Editscript
A library designed to diff and patch Clojure data structures
Stars: ✭ 281 (-94.28%)
Mutual labels:  patch, diff
duff
Pure OCaml implementation of libXdiff (Rabin's fingerprint)
Stars: ✭ 20 (-99.59%)
Mutual labels:  diff, patch
Compare-UserJS
PowerShell script for comparing user.js (or prefs.js) files.
Stars: ✭ 79 (-98.39%)
Mutual labels:  diff, text-processing
Ex audit
Ecto auditing library that transparently tracks changes and can revert them.
Stars: ✭ 214 (-95.64%)
Mutual labels:  patch, diff
Differencekit
💻 A fast and flexible O(n) difference algorithm framework for Swift collection.
Stars: ✭ 2,986 (-39.19%)
Mutual labels:  diff, difference
Diffson
A scala diff/patch library for Json
Stars: ✭ 258 (-94.75%)
Mutual labels:  patch, diff
dipa
dipa makes it easy to efficiently delta encode large Rust data structures.
Stars: ✭ 243 (-95.05%)
Mutual labels:  diff, patch
Gojsondiff
Go JSON Diff
Stars: ✭ 371 (-92.44%)
Mutual labels:  patch, diff
intellij-diff-plugin
Syntax highlighting for .diff files and .patch files in IntelliJ IDEs
Stars: ✭ 17 (-99.65%)
Mutual labels:  diff, patch
speech-recognition-evaluation
Evaluate results from ASR/Speech-to-Text quickly
Stars: ✭ 25 (-99.49%)
Mutual labels:  diff, difference
diffy
Tools for finding and manipulating differences between files
Stars: ✭ 47 (-99.04%)
Mutual labels:  diff, patch
AnyDiff
A CSharp (C#) diff library that allows you to diff two objects and get a list of the differences back.
Stars: ✭ 80 (-98.37%)
Mutual labels:  diff, difference
Python Patch
Library to parse and apply unified diffs
Stars: ✭ 65 (-98.68%)
Mutual labels:  patch, diff
Apkdiffpatch
a C++ library and command-line tools for Zip(Jar,Apk) file Diff & Patch; create minimal delta/differential; support Jar sign(apk v1 sign) & apk v2,v3 sign .
Stars: ✭ 121 (-97.54%)
Mutual labels:  patch, diff
tmux-eaw-fix
tmux 2.6 以降において East Asian Ambiguous Character を全角文字の幅で表示する
Stars: ✭ 16 (-99.67%)
Mutual labels:  diff, patch
Similar
A high level diffing library for rust based on diffs
Stars: ✭ 386 (-92.14%)
Mutual labels:  patch, diff

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

  1. Diff:
    • Compare two blocks of plain text and efficiently return a list of differences.
    • Diff Demo
  2. Match:
    • Given a search string, find its best fuzzy match in a block of plain text. Weighted for both accuracy and location.
    • Match Demo
  3. 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

Originally built in 2006 to power Google Docs, this library is now available in C++, C#, Dart, Java, JavaScript, Lua, Objective C, and Python.

Reference

Languages

Although each language port of Diff Match Patch uses the same API, there are some language-specific notes.

A standardized speed test tracks the relative performance of diffs in each language.

Algorithms

This library implements Myer's diff algorithm which is generally considered to be the best general-purpose diff. A layer of pre-diff speedups and post-diff cleanups surround the diff algorithm, improving both performance and output quality.

This library also implements a Bitap matching algorithm at the heart of a flexible matching and patching strategy.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].