Changes to the reference FVM's HAMT implementation.
- Added
for_each_cachelessmethod to iterate over the HAMT without caching the values. This is lowers memory requirements usage and is useful for single-pass, read-only operations over large HAMTs.
- Updates multiple dependencies (semver breaking internally but not exported).
- Add a
.clear()method for resetting the HAMT to empty.
Empty-release intended to un-deprecate .for_each but it was never actually deprecated in this crate.
Remove unnecessary features from multihash-codetable.
- Update
cidto v0.11 andmultihashto v0.19. - Update to
fvm_ipld_blockstore0.3.0 andfvm_ipld_encoding0.5.0. - Switch from libipld to rust-ipld-core.
You will have to update your multihash and cid crates to be compatible, see the multihash release notes for details on the breaking changes.
Breaking Changes:
- Remove the
ignore-dead-linksfeature. - Add a new
StartKeyNotFoundvariant to the HAMT error type.
Features:
- Implement external iteration via
iter()anditer_from(start_key).
Fixes:
- Extra-paranoid validation when reading HAMT nodes.
Breaking Changes:
- Deprecate default bitwidths in the HAMT
- Users must now always specify the bitwidth
- Add support for the Hamt version 0 datastructure, for historical purposes.
Breaking Changes:
- Update cid/multihash. This is a breaking change as it affects the API.
- Add
min_data_depthoption to reserve the top levels of the HAMT for links, free of key-value pairs.
- FIX: HashBits::next when bit_width does not divide 256 and the full hash is consumed
- Bumps
fvm_ipld_encodingand switches fromcs_serde_bytestofvm_ipld_encoding::strict_bytes.
- Update
fvm_ipld_encodingto 0.2.0.
- BREAKING: update fvm_shared to 0.5.1 for error refactor.
- BREAKING: rename
Hamt::consumetoHamt::into_store.