oxidelta 0.1.4

VCDIFF (RFC 3284) delta encoder/decoder — Rust reimplementation of xdelta3
Documentation
use oxidelta::compress::decoder::DeltaDecoder;
use oxidelta::compress::encoder::{CompressOptions, DeltaEncoder};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let source = b"ABCD-ABCD-ABCD-ABCD";
    let target = b"ABCD-XXXX-ABCD-YYYY";

    let mut delta = Vec::new();
    let mut enc = DeltaEncoder::new(
        &mut delta,
        source,
        CompressOptions {
            level: 6,
            window_size: 1024,
            ..Default::default()
        },
    );
    enc.write_target(target)?;
    enc.finish()?;

    let mut dec = DeltaDecoder::new(std::io::Cursor::new(&delta));
    let mut src: &[u8] = source;
    let mut out = Vec::new();
    dec.decode_to(&mut src, &mut out)?;

    assert_eq!(out, target);
    println!("windows decoded: {}", dec.windows_decoded());
    Ok(())
}