Skip to content

Rust port of the streaming ddelta patch algorithm, based on bsdiff

License

Notifications You must be signed in to change notification settings

lights0123/ddelta-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ddelta-rs

Crates.io Docs.rs

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 }

About

Rust port of the streaming ddelta patch algorithm, based on bsdiff

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages