v0.21.0
go-ipld-prime's release policy says that:
even numbers should be easy upgrades; odd numbers may change things
This release is an odd number, and it does change some minor things.
🛠 Breaking
- Build: The minimum version of Go has been bumped from 1.18 to 1.19.
- Dependencies: The go-cid dependency was upgraded from v0.3.2 to v0.4.1. This is a relatively minor change but the introduction of
ErrInvalidCidwrapping may be breaking for some users. - Selectors: Remove hard error when a traversal encounters a slice matcher with a node that is not a string or bytes, by @rvagg #529
🔦 Features
- Traversal:
Preloaderfunctionality, by @hannahhoward and @rvagg #452- See the traversal package documentation for more information on how a
Preloadercan be used to introduce parallelism into a traversal. The Lassie project is currently using this functionality to speed up Bitswap block fetching; future releases of go-ipld-prime may include additional functionality being prototyped in Lassie to manage parallelism and caching.
- See the traversal package documentation for more information on how a
- Schemas: Support
listpairsstruct representation in DSL parsing, by @rvagg #514 - Schemas: Support
inlineunion representation in DSL parsing, by @rvagg #527 - Bindnode: Support
listpairsstruct representation, by @rvagg #514 - Selectors: Support negative values for slice matcher's
FromandTo, by @rvagg #530- The slice matcher is currently being used to support byte-range fetching for the IPFS Trustless Gateway specification. Work is ongoing and can be seen in both the Lassie and Frisbii projects.
- Please note that this feature is currently considered experimental and shoule be used with care and with the expectation that it may change in the near future. Expect a release or two before this feature is considered stable.
🩹 Fixes
- Traversal:
StartAtPathwork properly for matching walks, by @rvagg #500 - Traversal:
WalkTransforming()work properly, by @EdSchouten #516 - Basicnode:
basic.NewInt()returns a pointer like other constructors, by @hacdias #525 - Selectors: Cache offsets for sequential reads in slice matcher, by @rvagg #529
🌟 Thanks!
Thanks to @hacdias and @EdSchouten for their first contributions to go-ipld-prime!