Skip to content

1.3.0

Latest
Compare
Choose a tag to compare
@ugorji ugorji released this 15 Jun 08:07
· 5 commits to master since this release

Release 1.3.0

Today, we release v1.3.0 of go-codec.

This is a BIG production release of go-codec. We encourage all users to upgrade immediately.

Highlights:

  • codecgen removed
  • benchmarks moved completely to go-codec-bench/codec package
  • introduce generics extensively within unexported code (not exposed to consumers)
  • built atop generics, introduce monomorphization for optimized code execution
  • dramatic performance improvement: up to 18% on encode and 49% on decode
  • many architectural refactoring cleanup for better code
  • many fixes, including zero copy, trie for struct field lookup,
  • support NilCollectionToZeroLength: allowing encoding a nil collection as [] not null in json, etc
  • json: support TimeFormat and BytesFormat in json, for comprehensive support when encoding time.Time and []byte
  • numerous architectural clean ups and bug fixes leading to much more robust code

As noted above, this release is up to 18% faster on encode and 49% faster on decode,
much more robust and provides better support for json and handling nil collections.

As a consequence of the changes, we now support at least 4 major releases of go.
v1.3.0 supports go 1.21+ (ie last 2+ years of go releases).

The main goal has always been to provide the most feature-rich and performant package
for encoding and decoding of multiple popular binary and text formats in a consistent way.

We believe we continue to achieve that!