- 1 year ago
Searching for a maintained binary diff/patch tool or library
As of my knowledge cutoff in September 2021, there are several maintained binary diff/patch tools and libraries available that you can consider for your needs. These tools and libraries help in creating and applying binary patches, which are useful for updating binary files efficiently by only transmitting the differences between versions.
Here are some popular and maintained binary diff/patch tools and libraries:
bsdiff and bspatch:
bsdiff and bspatch are two command-line tools for creating and applying binary patches. They were developed by Colin Percival and are known for their efficiency in generating and applying patches. The source code is available in the public domain and has been used in various projects.GitHub repository: https://github.com/mendsley/bsdiff
xdelta:
xdelta is another popular binary diff/patch tool that can create and apply binary patches. It supports both standard and VCDIFF formats. The xdelta3 version is actively maintained and widely used.GitHub repository: https://github.com/jmacd/xdelta
Courgette:
Courgette is a binary diff/patch library developed by Google for use in updating Google Chrome. It focuses on producing small delta updates and is designed for use in situations with limited bandwidth.GitHub repository: https://github.com/google/courgette
bsdiff4j:
bsdiff4j is a Java library based on bsdiff for creating and applying binary patches. It provides a Java API for working with binary diffs and patches.GitHub repository: https://github.com/mendsley/bsdiff4j
libxdiff:
libxdiff is a C library for creating and applying binary patches. It offers memory-efficient algorithms and is actively maintained.GitHub repository: https://github.com/joncampbell123/difflib
rdiff:
rdiff is a mature and widely used command-line tool and C library for creating and applying binary diffs. It offers a flexible set of features for generating and applying patches.Website: https://librsync.github.io/
Please note that the availability and popularity of tools and libraries might change over time, so I recommend checking the latest status and activity of the projects before making a choice. Always review the documentation, features, and licensing terms of the tools or libraries to ensure they meet your specific requirements and are compatible with your project's needs.