Projects / LibXDiff


The LibXDiff library implements basic and yet complete functionalities to create file differences/patches to both binary and text files. It uses memory files as file abstraction to achieve both performance and portability. For binary files, it implements both (with some modification) the algorithm described in "File System Support for Delta Compression" by Joshua P. MacDonald and the algorithm described in "Fingerprinting By Random Polynomials" by Michael O. Rabin. For text files, it follows directives described in "An O(ND) Difference Algorithm and Its Variations" by Eugene W. Myers. Memory files used by the library are basically a collection of buffers that store the file content.

Operating Systems

Recent releases

  •  13 Nov 2008 00:32

    Release Notes: Improved performance a in few corner case patterns and in cases where there is a huge input file. Some code cleanup.

    •  30 Oct 2006 05:59

      Release Notes: A bug in indexing on 64-bit machines was fixed.

      •  25 Apr 2006 17:46

        Release Notes: This release implements Rabin's polynomial binary diffs, and improves text diff generation by performing hunk merging and consolidation.

        •  11 Apr 2006 22:47

          Release Notes: This release improves the text diff prepare stage to allow a better selection of the lines to be marked as changed.

          •  27 Mar 2006 16:29

            Release Notes: The problem with the missing final end-of-line in text diff/patch was fixed. The condition is now correctly handled in a way that makes libxdiff text diff/patch compatible with GNU diff/patch.


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.