likewise

Crates.iolikewise
lib.rslikewise
version3.0.0
created_at2025-09-11 18:34:30.988981+00
updated_at2025-09-11 18:34:30.988981+00
descriptionA diff library for Rust (fork of similar)
homepage
repositoryhttps://github.com/barrett-ruth/likewise
max_upload_size
id1834322
size240,398
Barrett Ruth (barrett-ruth)

documentation

README

Likewise: A Diffing Library

This crate is a fork of similar library, which, as of 11/9/25, is rather inactive.

Crates.io License rustc 1.60.0 Documentation

Likewise is a dependency free crate for Rust that implements different diffing algorithms and high level interfaces for it. It is based on the pijul implementation of the Patience algorithm and inherits some ideas from there. It also incorporates the Myers' diff algorithm which was largely written by Brandon Williams. This library was built for the insta snapshot testing library.

use likewise::{ChangeTag, TextDiff};

fn main() {
    let diff = TextDiff::from_lines(
        "Hello World\nThis is the second line.\nThis is the third.",
        "Hallo Welt\nThis is the second line.\nThis is life.\nMoar and more",
    );

    for change in diff.iter_all_changes() {
        let sign = match change.tag() {
            ChangeTag::Delete => "-",
            ChangeTag::Insert => "+",
            ChangeTag::Equal => " ",
        };
        print!("{}{}", sign, change);
    }
}

Screenshot

terminal highlighting

What's in the box?

  • Myers' diff
  • Patience diff
  • Hunt–McIlroy / Hunt–Szymanski LCS diff
  • Diffing on arbitrary comparable sequences
  • Line, word, character and grapheme level diffing
  • Text and Byte diffing
  • Unified diff generation

Related Projects

License and Links

Commit count: 218

cargo fmt