[−][src]Crate ddelta
A rust port of ddelta, which is a streaming and more efficient version of bsdiff. The
output created by this program is sometimes (when using generate
) compatible with the
original C tool, ddelta, but not with bsdiff. This library may use up to 5 times the old
file size + the new file size, (5 × min(o, 2^31-1) + min(n, 2^31-1)), up to 12GiB. To control
this, see the chunk_sizes
parameter of generate_chunked
.
Note: the patches created by program should be compressed. If not compressed, the output may actually be larger than just including the new file. You might want to feed the patch file directly to an encoder, and read via a decoder implementing a compression algorithm to not require much disk space. Additionally, no checksum is performed, so you should strongly consider doing a checksum of at least either the old or new file once written.
Features
This crate optionally supports compiling the c library, divsufsort, which is enabled by default.
A Rust port is available; however, it has worse performance than the C version. If you'd like
to use the Rust version instead, for example if you don't have a C compiler installed, add
default-features = false
to your Cargo.toml, i.e.
[dependencies]
ddelta = { version = "0.1.0", default-features = false }
Enums
State | The current state of the generator. |
Functions
apply | Apply a patch file. This is compatible with the formats created by |
apply_chunked | Apply a patch file. This is compatible with the formats created by
|
generate | Generate a ddelta patch. This has a limit of 2^31-1 bytes. |
generate_chunked | Generate a ddelta patch. This does not have a limit of 2^31-1 bytes, unlike |