Package org.metastatic.rsync

This is the main package of Jarsync, an implementation of the rsync algorithm in Java.


Interface Summary
Delta A Delta is, in the Rsync algorithm, one of two things: (1) a block of bytes and an offset, or (2) a pair of offsets, one old and one new.
GeneratorListener Standard interface for the checksum generator callback, called by GeneratorStream when new checksum pairs are ready.
MatcherListener Standard interface for the hashtable matcher callback, called by MatcherStream when new deltas are ready.
ParameterListener A listener for parsing Samba-style config files.
RebuilderListener A listener for RebuilderEvents.
RollingChecksum A general interface for 32-bit checksums that have the "rolling" property.

Class Summary
BrokenMD4 An implementation of Ron Rivest's MD4 message digest algorithm.
Checksum32 A simple 32-bit "rolling" checksum.
ChecksumDecoder The base class of objects that decode (internalize) checksum pairs from byte streams.
ChecksumEncoder The base class of objects that encode (externalize) checksum pairs to byte streams.
ChecksumPair A pair of weak and strong checksums for use with the Rsync algorithm.
Configuration A Configuration is a mere collection of objects and values that compose a particular configuration for the algorithm, for example the message digest that computes the strong checksum.
DataBlock This is the Delta in the rsync algorithm that introduces new data.
DeltaDecoder The superclass of all classes that decode delta objects from an external, binary format.
DeltaEncoder The superclass of objects that encode sets of deltas to external representations, such as the over-the-wire format of rsync or the rdiff file format.
Generator Checksum generation methods.
GeneratorEvent Generator events are created whenever a checksum pair has been created.
JarsyncProvider This provider implements the MD4 message digest, and is provided to ensure that MD4 is available.
MappedRebuilderStream A version of RebuilderStream that maps large files to memory using the NIO API.
Matcher Methods for performing the checksum search.
MatcherStream A streaming version of Matcher.
MD4 An implementation of Ron Rivest's MD4 message digest algorithm.
Offsets This class represents an update to a file or array of bytes wherein the bytes themselves have not changed, but have moved to another location.
Parameters Simple parser for Samba-style config files.
Rdiff A re-implementation of the rdiff utility from librsync.
Rebuilder Methods for file reconstruction from deltas.
RebuilderEvent a rebuilder event.
RebuilderStream A "streaming" alternative to Rebuilder.
TwoKeyMap This is a "double-keyed" mapping.
Util A number of useful, static methods.

Exception Summary
ListenerException Signals an exception raised by an @{link GeneratorListener}, @{link MatcherListener}, or @{link RebuilderListener}.
ParameterException Signals that a parameter file being parsed is incorrect.

Package org.metastatic.rsync Description

This is the main package of Jarsync, an implementation of the rsync algorithm in Java.

Copyright © 2001,2002,2003 Casey Marshall <>

This package is a part of Jarsync.

Jarsync is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version.

Jarsync is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Jarsync; see the file COPYING. If not, write to the

Free Software Foundation Inc.
59 Temple Place - Suite 330
Boston, MA 02111-1307

Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.