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!