Skip to content

v0.21.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 10 Aug 02:32

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 ErrInvalidCid wrapping 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: Preloader functionality, by @hannahhoward and @rvagg #452
    • See the traversal package documentation for more information on how a Preloader can 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.
  • Schemas: Support listpairs struct representation in DSL parsing, by @rvagg #514
  • Schemas: Support inline union representation in DSL parsing, by @rvagg #527
  • Bindnode: Support listpairs struct representation, by @rvagg #514
  • Selectors: Support negative values for slice matcher's From and To, 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: StartAtPath work 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!