go-codec v1.2.1 Release Notes

Release Date: 2020-12-03 // 5 months ago
  • ๐Ÿš€ This is a production release of go-codec.

    This includes a fix for codecgen when using omitempty (github issue #344).


Previous changes from v1.2.0

  • ๐Ÿš€ This is a production release of go-codec.

    Today marks 1 full year after the 11th day of the 11th month of last year,
    a very very special day in my life.

    ๐Ÿš€ On this very special day, we release the latest patch release of v1.1 and it
    ๐Ÿš€ matches with the first release of v1.2.0 of go-codec.

    ๐Ÿš€ This release should be about 10% faster during decode than previous releases.

    ๐ŸŽ Beyond performance, the focus was on cleaning up the codebase while maintaining support
    ๐Ÿš€ for much earlier releases of go, and supporting gccgo.

    ๐Ÿ”„ Changes

    • ๐Ÿ‘Œ support gccgo
    • ๐Ÿ‘Œ improve performance in looking up fast-path functions or cached struct information
    • โšก๏ธ optimize json's encoding and decoding of numbers (integers and floats) and strings
    • โšก๏ธ optimize base reading primitive functions, to reduce pointer-chasing
    • โšก๏ธ optimize map iteration and lookup

    ๐Ÿ‘€ See benchmark results run on a very complicated struct full of embedded types, with multiple nested levels.
    Each struct value encodes as 47K of tightly packed json or 37K of binary msgpack or cbor.

    ๐Ÿ“ฆ 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!