#diff #bar

diff

An LCS based slice and string diffing implementation

14 releases

Uses old Rust 2015

0.1.13 Jun 29, 2022
0.1.12 Dec 17, 2019
0.1.11 Nov 16, 2017
0.1.10 Mar 2, 2017
0.1.4 Jul 27, 2015

#48 in Text processing

Download history 588123/week @ 2024-12-17 282125/week @ 2024-12-24 423203/week @ 2024-12-31 690058/week @ 2025-01-07 709849/week @ 2025-01-14 655864/week @ 2025-01-21 661759/week @ 2025-01-28 743270/week @ 2025-02-04 775002/week @ 2025-02-11 851506/week @ 2025-02-18 886956/week @ 2025-02-25 933950/week @ 2025-03-04 971492/week @ 2025-03-11 949607/week @ 2025-03-18 965087/week @ 2025-03-25 807289/week @ 2025-04-01

3,865,546 downloads per month
Used in 4,261 crates (142 directly)

MIT/Apache

47KB
137 lines

diff.rs

An LCS based slice and string diffing implementation.

Install

[dependencies]
diff = "0.1"

Example

extern crate diff;

fn main() {
    let left = "foo\nbar\nbaz\nquux";
    let right = "foo\nbaz\nbar\nquux";

    for diff in diff::lines(left, right) {
        match diff {
            diff::Result::Left(l)    => println!("-{}", l),
            diff::Result::Both(l, _) => println!(" {}", l),
            diff::Result::Right(r)   => println!("+{}", r)
        }
    }
}

prints

 foo
-bar
 baz
+bar
 quux

License

diff is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE, and LICENSE-MIT for details.

No runtime deps