The GNU project already has a diff program which is part of the GNU diffutils package. There also are various non-GNU diff programs provided by various constructors.
There is also the well-established wdiff which uses diff under the hood. It differs slightly from wdiff2, its intended mdiff-based successor.
The following sections compare mdiff specifications with both GNU diff and with wdiff.