https://github.com/uutils/diffutils
Drop-in replacement of diffutils in Rust
https://github.com/uutils/diffutils
Last synced: 3 months ago
JSON representation
Drop-in replacement of diffutils in Rust
- Host: GitHub
- URL: https://github.com/uutils/diffutils
- Owner: uutils
- License: apache-2.0
- Created: 2021-02-24T05:18:30.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-05-12T05:18:14.000Z (10 months ago)
- Last Synced: 2025-05-15T23:01:58.490Z (10 months ago)
- Language: Rust
- Homepage:
- Size: 313 KB
- Stars: 151
- Watchers: 5
- Forks: 13
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
- awesome-starred - uutils/diffutils - Drop-in replacement of diffutils in Rust (Rust)
README
[](https://crates.io/crates/diffutils)
[](https://discord.gg/wQVJbvJ)
[](https://github.com/uutils/diffutils/blob/main/LICENSE)
[](https://deps.rs/repo/github/uutils/diffutils)
[](https://codecov.io/gh/uutils/diffutils)
The goal of this package is to be a drop-in replacement for the [diffutils commands](https://www.gnu.org/software/diffutils/) (diff, cmp, diff3, sdiff) in Rust.
Based on the incomplete diff generator in https://github.com/rust-lang/rust/blob/master/src/tools/compiletest/src/runtest.rs, and made to be compatible with GNU's diff and patch tools.
## Installation
Ensure you have Rust installed on your system. You can install Rust through [rustup](https://rustup.rs/).
Clone the repository and build the project using Cargo:
```bash
git clone https://github.com/uutils/diffutils.git
cd diffutils
cargo build --release
```
## Example
```bash
cat <fruits_old.txt
Apple
Banana
Cherry
EOF
cat <fruits_new.txt
Apple
Fig
Cherry
EOF
$ cargo run -- -u fruits_old.txt fruits_new.txt
Finished dev [unoptimized + debuginfo] target(s) in 0.00s
Running `target/debug/diffutils -u fruits_old.txt fruits_new.txt`
--- fruits_old.txt
+++ fruits_new.txt
@@ -1,3 +1,3 @@
Apple
-Banana
+Fig
Cherry
```
## License
diffutils is licensed under the MIT and Apache Licenses - see the `LICENSE-MIT` or `LICENSE-APACHE` files for details