Skip to content

Releases: knickish/structdiff

v0.7.0

24 Apr 00:01
3be9842
Compare
Choose a tag to compare

Changes in this release:

  • Updated the ordered_array_like collection strategy (breaking change for diffs serialized before v0.7.0)
    • Hirschberg's algorithm used (instead of Levenshtein-only) for dramatically lower memory usage (quadratic -> linear)
    • Optimized the Levenshtein implementation slightly
    • Using a rope instead of a stdlib vec when applying changes for much lower memory usage + speedups
  • The unordered_map_like collection strategy no longer sends the value when deleting an entry
  • Lots of updates to benchmarks

v0.6.3

16 Mar 19:05
d7ba2b9
Compare
Choose a tag to compare

Changes in this release:

  • Added the ordered_array_like collection strategy, which uses levenshtein distance to create changesets for ordered collections
  • Fixed a case where generated setters would not update the base struct when combined with a collection strategy

v0.6.2

02 Mar 20:20
Compare
Choose a tag to compare

This release adds two changes to increase performance of diffing collections:

  • size hints are used internally to decrease amount of time spent allocating (~5-8% faster according to in-repo benchmarks)
  • rustc_hash is added as a (feature gated) dependency for cases where a non-cryptographic hash is acceptable (~50-60% faster according to in-repo benchmarks)