#patch #delta-encoding #delta-compression #delta #smdiff

smdiff-merger

A library for merging SMDIFF delta files together

2 releases

0.5.1 Jul 17, 2024
0.5.0 Jun 7, 2024

#394 in Compression

MIT license

195KB
3.5K SLoC

smdiff-merger

smdiff-merger is a library that provides utilities for merging SMDIFF files. SMDIFF (Delta) is a format for encoding differences between two files, commonly used for efficient binary patching. It is a simplified version of VCDIFF.

Features

Used to create a summary patch between 2 or more patches.

This uses a Merger struct that will allow for early termination. Basically, if a merge patch no longer contains any Copy instructions, merging more patches will have no effect.

Improvements

This does not try to use CopySrc::Output for long runs. It might be an optimization to include (see the encoder, it uses this trick). So byte runs longer than ~200 bytes would probably benefit. If we ever merge a long run from the encoder, we will output a ton of Run ops that are the max length. This is probably only worth the effort when we go to write to the delta format. If someone just want to use the take_ops directly, then having extra ops is probably fine.

Dependencies

~4.5MB
~79K SLoC