All Versions
14
Latest Version
Avg Release Cycle
47 days
Latest Release
1233 days ago

Changelog History
Page 1

  • v1.2.1 Changes

    December 03, 2020

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

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

  • v1.2.0 Changes

    November 11, 2020

    ๐Ÿš€ 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!

  • v1.1.14 Changes

    November 11, 2020

    ๐Ÿš€ 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 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!

  • v1.1.13 Changes

    October 19, 2020

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

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

    ๐Ÿ”„ Changes

    • ๐Ÿ”ง 10% faster on decode and encoding if omitempty is configured
    • ๐Ÿ‘Œ improved performance in looking up struct field values when decoding structs
    • ๐Ÿ‘ codecgen: support generating reduced code for json only, omitempty support, or to_array support
    • ๐Ÿ‘ omitempty: support for IsCodecEmpty, a custom way of checking if a value is empty
    • โšก๏ธ omitempty: optimize comparing to zero'es to check if a value is empty
    • โšก๏ธ stack overflow/circular references: optimize check by push/popping a stack

    ๐Ÿ‘€ 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!

  • v1.1.10 Changes

    October 03, 2020

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

    ๐ŸŽ The main benefits are much expanded testing and associated code fixes, re-factoring and performance improvements:

    • โœ‚ removed some code cruft
    • โœ… expand tests and fix issues around extensions support in codecgen
    • ๐Ÿšง clean up codebase for easier maintenance
    • ๐ŸŽ and many general performance improvements ...

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

  • v1.1.9 Changes

    September 27, 2020

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

    ๐ŸŽ The main benefits are streamlined go modules support, re-factoring and performance improvements:

    • โœ‚ removed some code cruft
    • ๐Ÿšš moved codec/bench into its own module, so it's requirements do not pollute the core library dependencies
    • implement reading the next value in the stream natively, provided by each format's handle
    • โœ‚ remove mode of reading the next value in the stream by decoding into a throwaway value and tracking bytes read
    • ๐ŸŽ clean up code to enable better inlining for better performance
    • ๐Ÿ›  fix and expand tests to get richer code coverage;
      โœ… go test -cover reports > 90%
    • ๐ŸŽ and many general performance improvements ...

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

  • v1.1.9-beta Changes

    September 24, 2020

    2020-09-24

  • v1.1.8 Changes

    September 14, 2020

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

    ๐ŸŽ The main benefits are a number of bug fixes and some performance improvements:

    • โฌ‡๏ธ reduce binary size by 30% by reducing types for which we generate fast-path functions
    • ๐Ÿ‘Œ support OptimumSize encode option: cbor uses to encode floats in smallest size e.g. binary16
    • decode stream nil value in mapping as a nil pointer in memory (previously set to zero value)
    • validate that malformed streams can be decoded without causing stack overflow or out of memory errors
    • json: return EOF in all scenarios when end of stream is reached (previously returned other error sometimes)
    • json: handle malformed unicode correctly in corner cases
    • ๐ŸŽ and some general performance improvements ...

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

  • v1.1.7 Changes

    July 02, 2019

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

    First, it resolves the go.mod impasse where we had different import paths (github.com/ugorji/go and github.com/ugorji/go/codec) causing the ambiguous import error.

    ๐Ÿ›  This is now fixed by leveraging import cycles to ensure that either one works well and resolves to the same bits.

    ๐Ÿ”จ The other benefits are a clean up and refactoring of the codebase:

    • ๐ŸŽ provide better and more consistent performance
    • ๐Ÿ”€ streamline the use of sync.Pool vs free lists
    • โšก๏ธ Use more optimized helpers when not in safe mode
    • Smoothen rough edges across the board
    • and many more ...

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

  • v1.1.6 Changes

    July 02, 2019

    2019-07-02