Giter Club home page Giter Club logo

jbdiff's Introduction

README file for JBDiff (Java Binary Diff) 
Version: 0.1.1
Release date: 1 Oct 2007

JBDiff (Java Binary Diff) utility is a Java translation of the bsdiff (v4.2) utility 
by Colin Percival. See http://www.daemonology.net/bsdiff/

The file format is similar to, but currently not compatible with the bsdiff utility. 
This is because bsdiff uses bzip2 for compression which is not available in the 
standard Java libraries. Instead I use gzip (java.util.zip.*)

The diff utility is very memory hungry. Attempting to diff very large files with 
insufficient RAM may cause your computer to 'trash' (ie become unusably slow and may
require a reset to recover). Comparing two 20MB files will take approx 80 seconds 
on a 2GHz Pentium 4 and will require a maximum heap size of at least 220 MBytes. The
maximum heap size can be specified using the -Xmx switch to the Java VM (see examples
below). The patch utility has more modest resource requirements.

EXAMPLES:

To compare old.bin with new.bin and produce diff file new-old.diff:

java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBDiff old.bin new.bin new-old.diff

To patch old.bin with new-old.diff to produce new.bin:

java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBPatch old.bin new.bin new-old.diff

TODO:

This first release is a rather blind port of the bsdiff utility. A vast bulk of
the code ported to Java without any modification. There is scope 
for optimization (the C bsdiff runs in approx 50% faster than JBDiff).

Also it would be nice to be able to produce output that is compatible with bsdiff.
I need a bzip2 library for that.

Any suggestions, feedback and bugs will be much appreciated. Please email
to [email protected]

LICENSE:

Now available under BSD license (previously GPL).

CHANGES SINCE 0.1.0 RELEASE:

Change of license from GPL v2 to BSD license.

Joe Desbonnet
[email protected]
1 Oct 2007

jbdiff's People

Contributors

jdesbonnet avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.