I've worked on (alleged) sota delta compressors before and was suprised how much code is needed here to enable OMP parallelism & LZMA compression. It could also just be the difference in delta technique, I will definitely look through it some more if I have the time.
hi, most of the code in my repository has to work around various C problems (e.g. no generics), so match32 and match64 are the same functions that work on differently sized buffers - if I had generics and RAII, the diffing and patching source code would have been comparable in size to your project.
I also don't see robust error handling in your code, which usually costs lines of code (especially in C) too.
The difference in delta technique is certainly not negligible, as my code still uses Colin Percival's algorithm, while you seem to have settled on something else. It's also important to point out that being "better than xdelta" means pretty much the same as "having more than nothing", because xdelta has already been superseded 20 years ago by bsdiff[1], which in turn would ideally be superseded by my project.
I'm sharing a tool that I have been working on in hopes that someone finds it useful. The tool serves the purpose of binary patching in game updates and personal incremental backups. Thanks to a different SA-IS algorithm and parallel compression of blocks, the diffing and patching is considerably faster compared to bsdiff or alternatives. This makes binary patching, in many cases, a viable option.
For reference the tool I worked on (gdelta) is about roughly 700 sloc: https://github.com/i404788/gdelta