Skip to content

milahu/rust-compare-diff-libs

Repository files navigation

rust-compare-diff-libs

comparison of diff algorithms in rust

  • Myers diff algorithm
    • can produce 'slider errors' = wrong grouping of lines / code blocks
  • Patience diff algorithm
    • implemented in diffs library, see diffs-patience-token/
    • (much) slower than myers algorithm
    • can fix 'slider errors' = wrong grouping of lines / code blocks
  • Longest Common Subsequence (LCS) algorithm
    • TODO better name? strictly speaking, all diff algos are LCS algos
    • sometimes fails to find the longest common sequence, see difference-lcs/

todo

binary file size

$ ./run.sh

file size
total   extra  file

293024      0  target/release/noop-str
293024      0  target/release/noop-string
305312  12288  target/release/diffs-myers-byte
309408  16384  target/release/diffs-myers-token
313504  20480  target/release/difference-lcs
333984  40960  target/release/diffs-patience-token
333984  40960  target/release/dissimilar-myers

reduce binary size

https://github.com/johnthagen/min-sized-rust

strip will reduce size by 70%

cargo build --release
strip target/release/*

removing panic/format also brings drastic reductions in file size (this is important for embedded targets), but libraries must be patched

related

About

comparison of diff algorithms in rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published