Skip to content

Version 0.3.1: "On the Edge"

Choose a tag to compare

@a4lg a4lg released this 02 Feb 02:53
· 298 commits to main since this release

While the test rewrite is not yet finished (making the test generics is half of our objective and that's not still done), decent optimization and a new feature is enough justifying the release.

  • Feature
    • Added the strict parser (the strict-parser feature).
      In exchange of the performance, it will reject fuzzy hash strings which will cause an error on the raw variant but not on the normalized variant (on the defualt parser).
      It will make the parser less confusing and more robust.
  • API
    • Added implementations of ExactSizeIterator (always) and TrustedLen (if both unsafe and nightly are enabled) to the NumericWindows struct, expecting optimization from the outside.
  • Performance
    • Optimization to FuzzyHashData::is_normalized().
      It will also improve the performance when Serde is integrated.
    • Slight optimization to the block hash parser which may (or may not) result in slightly smaller code size.
    • Implementation of TrustedLen to NumericWindows might help optimizing the performance on Nightly (where the nightly feature is enabled).
  • Tests
    • The first batch of test minimization efforts (not yet complete).
    • Generator tests are no longer "very slow" (since we have found an efficient way to generate equivalent Generator object that have consumed specific number of zero bytes).
    • Complex sequence-based tests are now removed since it is proven that it doesn't improve any coverage.
    • Improved coverage on FuzzyHashData.
    • Improved coverage on processing very large files (Unix only; when sparse files are supported).
  • Internals
    • Various changes for maintainability, test flexibility and better coverage report.
    • Rewrite of the block hash parser for maintainability.

Crates.io: https://crates.io/crates/ffuzzy/0.3.1
Docs.rs: https://docs.rs/ffuzzy/0.3.1/ssdeep/

Full Changelog: v0.3.0...v0.3.1