What's new
rkyv zero-copy (de)serialization
This release adds a new rkyv feature flag, bringing zero-copy serialization support to PrefixMap, PrefixSet, and JointPrefixMap/JointPrefixSet. The archived types implement the same TrieView interface as their live counterparts, so you can look up, iterate, and compute covering/LPM/SPM queries directly on the archived (mmap'ed) representation without deserializing.
get,get_key_value,contains,get_lpm,get_spm,is_covered,is_covered_in_aggregate,address_count,children,iter/iter_from, and cover iterators are all available on the archived variants.ArchivedTrieReftype that implementsTrieView, enabling integration with concrete (non-archive) types. The new functions onTrieViewsimplify this process.- See the new module-level examples for how to serialize, mmap, and query an archived trie.
Others
- New
FilterViewto filter a view by a predicate closure. - New
ClonedViewandCopiedViewadapters. - New
MapViewcombinator forTrieView. is_coveredandis_covered_in_aggregateadded to the core map/set API.
Fixes
- Fixed a repositioning bug in
TrieViewthat could cause UB. - Fixed
Defaultimplementations onJointiterators (were previously inconsistent/incorrect). - Removed
stepandnavigate_tofrom the publicTrieViewinterface (internal-only).
Other
- Raised rust minimal supported version to 1.81.0
Full Changelog: v0.9.4...v0.10.0