Skip to content

v2.6.0

Compare
Choose a tag to compare
@fxamacker fxamacker released this 14 Feb 13:37
· 192 commits to master since this release
1f67e1e

This release adds important new features, optimizations, bug fixes, and 3 new contributors. Fuzz tests passed 5+ billion execs for CBOR encoding and decoding functions. Minimum officially supported Go is bumped to Go 1.17.

⭐ Features and Optimizations

  • Add FieldNameMatching decode option. by @benluddy in #433
  • Add option to decode CBOR bignum to interface{} as *big.Int by @fxamacker in #456
  • Add 2 more options for decoding CBOR integers to interface{} by @fxamacker in #457
  • Add encoding option to specify how omitempty fields are encoded by @dinhxuanvu in #453
  • New options for encoding Go strings to and from CBOR byte strings by @benluddy in #465
  • Add options to support byte string map keys as struct field names by @benluddy in #472
  • Add option to specify how to decode unrecognized CBOR tag to any by @ssuriyan7 in #475

🚀 Notable Optimizations

  • Improve memory allocs 🗜️ and speed 🚀 of encoding maps by using Go 1.18-1.20 features by @dinhxuanvu in #468

    📊 Benchmarks

    benchstat results provided by @dinhxuanvu

    Screenshot of CBOR benchmarks

    NOTE: Go 1.17 is the minimum version supported by v2.6.0. Go 1.20+ will use optimizations introduced by PR 468.

🛠 Improvements

🐞 Bug Fixes

  • Fix panic when decoding CBOR nil to *cbor.SimpleValue by @fxamacker in #461
  • Fix cbor.SimpleValue encoding and decoding by @fxamacker in #464
  • Fix EncOption/DecOption unset fields on mode regurgitation. by @benluddy in #480

📖 Docs and CI

New Contributors

Full Changelog: v2.5.0...v2.6.0