NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #2526 most downloaded on crates.io
Tools for finding and manipulating differences between files
Last release 1 months ago
31 Aug 2026
Release timing varies
gaps range from 3 weeks to 1.8 years
Nearly every release is documented
notes for 12 of 13 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
13 releases · first in 2020
One column per quarter.
### Added - #88 New IncompleteHunkStyle option on MergeOptions selecting how conflict markers are rendered when a conflicting hunk ends in a line with
IncompleteHunkStyle option on MergeOptions selecting how
conflict markers are rendered when a conflicting hunk ends in a line
without a trailing newline. Diff3 (the default) appends the
succeeding markers directly to the incomplete line, matching GNU
diff3 -m and restoring the pre-0.5.1 output. Git places every
marker on its own line, matching git merge-file, which was the
(unconditional) behavior introduced in 0.5.1 by
#85.---/+++ headers when parsing a
patch. Previously the carriage return was treated as part of the
filename and rejected, so every patch generated on Windows failed to
parse.### Fixed - #85 Merge conflict markers are now always placed on their own lines. Previously, a conflicting hunk at the end of a file without a trailin
git merge-file --diff3 behavior.This is a major release introducing multi-file patch support, git binary diff handling, and no_std compatibility.
This is a major release introducing multi-file patch support,
git binary diff handling, and no_std compatibility.
no_std by default.
Patch::to_bytes() and PatchFormatter::write_patch_into() now
require the std feature. Add features = ["std"] to restore them.color feature flag.
Previously color was always available. Now PatchFormatter::with_color()
requires enabling the color feature. The underlying implementation
switched from nu-ansi-term to anstyle.git diff output containing
multiple files, including create, delete, modify, rename, and copy
operations. Git binary patches (literal and delta) are supported
behind the binary feature flag.apply example demonstrating multi-file patch application.Patch::from_str / from_bytes no longer error on trailing
non-patch content after a complete hunk,
matching GNU patch and git apply behavior.str.\a, \b, \f, \v,
3-digit octal escapes (\0xx–\3xx), and quote all control characters.### Added - #37 Allow configuring the "No newline at end of file" message from being printed when formatting a patch. - #38 Add support for configurin
### Added - #36 Add ability to configure filenames when creating a patch with DiffOptions.
DiffOptions.### Fixed - #28 Fixed an issue where conflicts were being omitted from merges. ### Added - #26 Add ability to reverse a patch. ### Changed - #29 Bump
### Fixed - #17 Fix an issue which resulted in a large slowdown when applying a patch with incorrect hunk headers. - #18 Replace unmaintained ansi_ter
### Fixed - #16 Fix an issue where patch files failed to parse when they contained hunks which were adjacent to one another.
### Fixed - #9 Fix an issue where the incorrect range was being used to index an array when calculating a merge resulting in a panic in some cases.
Support for working with potentially non-utf8 data with the addition of various *_bytes functions.
*_bytes functions.W: io::writePatch type is now generic across the text type, either str for utf8
text and [u8] for potentially non-utf8 texts.Patches can now be parsed from strings with Patch::from_str
Patches can now be parsed from strings with Patch::from_strPatch can now be applied to a base image with apply[0.5.2]: https://github.com/bmwill/diffy/releases/tag/0.5.2 [0.5.1]: https://github.com/bmwill/diffy/releases/tag/0.5.1 [0.5.0]: https://github.com/bm
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →