diffutils is both an executable binary that can be run, and a library that can be used in Rust programs.
Installing the command-line executable
Assuming you have Rust/Cargo installed , run this command in a terminal:
cargo install diffutils
It will make the diffutils command available in your PATH if you've allowed the PATH to be modified when installing Rust . cargo uninstall diffutils uninstalls.
Adding diffutilslib library as a dependency
Run this command in a terminal, in your project's directory:
cargo add diffutils
To add it manually, edit your project's Cargo.toml file and add to the [dependencies] section:
diffutils = "0.5.0"
The diffutilslib library will be automatically available globally.
Read the diffutilslib library documentation .
Back to the crate overview .
Readme
The goal of this package is to be a drop-in replacement for the diffutils commands (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 .
Clone the repository and build the project using Cargo:
git clone https://github.com/uutils/diffutils.git
cd diffutils
cargo build -- release
Example
cat << EOF > fruits_old.txt
Apple
Banana
Cherry
EOF
cat << EOF > 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