#distance #edit #ziv #lempel

bin+lib lzjd

Rust implementation of the LZJD algorithm (https://github.com/EdwardRaff/jLZJD)

5 releases

0.2.0 Jul 12, 2019
0.1.3 Mar 22, 2019
0.1.2 Mar 20, 2019
0.1.1 Mar 20, 2019
0.1.0 Mar 20, 2019

#482 in Compression

GPL-3.0 license

28KB
659 lines

LZJD

Documentation

Rust implementation of Lempel-Ziv Jaccard Distance (LZJD) algorithm based on jLZJD

Main differences:

  • Rust instead of Java
  • Can use any hasher (executable uses CRC32) instead of just Murmur3
  • Does not allocate memory for every unique hash, instead keeps k=1024 smallest
  • Based on Vec instead of IntSetNoRemove, which is more like HashMap
  • Hash files are considerably smaller if small sequences have been digested
USAGE:
    lzjd [FLAGS] [OPTIONS] <INPUT>...

FLAGS:
    -c, --compare        compare SDBFs in file, or two SDBF files
    -r, --deep           generate SDBFs from directories and files
    -g, --gen-compare    compare all pairs in source data
    -h, --help           Prints help information
    -V, --version        Prints version information

OPTIONS:
    -o, --output <FILE>            send output to files
    -t, --threshold <THRESHOLD>    only show results >= threshold [default: 1]

ARGS:
    <INPUT>...    Sets the input file to use

See also:

Dependencies

~6.5MB
~132K SLoC