Skip to content

Releases: ugorji/go

1.2.2

20 Dec 18:35
Compare
Choose a tag to compare

This is a production release of go-codec.

This includes a fix for decoding into nested anonymous fields (github issue #350).

1.2.1

03 Dec 17:22
Compare
Choose a tag to compare

This is a production release of go-codec.

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

1.2.0

11 Nov 06:23
Compare
Choose a tag to compare

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!

1.1.14

11 Nov 06:19
Compare
Choose a tag to compare

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!

1.1.13

19 Oct 15:37
Compare
Choose a tag to compare

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!

1.1.12

14 Oct 17:48
Compare
Choose a tag to compare

UPDATE: v1.1.12 includes fix for a race detector issue #336.

This is a production release of go-codec.

Today marks 11 months after the 11th day of the 11th month of last year.

On this very special day, we release v1.1.11 of go-codec.

This day holds a special place in my heart on a very personal level.

I hope you enjoy the immense effort put into refining and cleaning
out the edges go-codec, delivered in v1.1.11

The quality and performance should shine across:

  • binary size
  • performance/speed
  • memory use
  • feature rich (more than any other library in the go ecosystem)

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.

High level benefits include

  • significantly expanded test suite, bringing code coverage to 92%
  • remove limits on struct embedding
  • optimize struct field access, json parsing, free list usage, etc
  • multiple performance improvements across the board

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!

1.1.11

11 Oct 22:33
Compare
Choose a tag to compare
1.1.11 Pre-release
Pre-release

UPDATE: v1.1.1 introduced a race detector issue #336, which has now been fixed in v1.1.12. Please upgrade.

This is a production release of go-codec.

Today marks 11 months after the 11th day of the 11th month of last year.

On this very special day, we release v1.1.11 of go-codec.

This day holds a special place in my heart on a very personal level.

I hope you enjoy the immense effort put into refining and cleaning
out the edges go-codec, delivered in v1.1.11

The quality and performance should shine across:

  • binary size
  • performance/speed
  • memory use
  • feature rich (more than any other library in the go ecosystem)

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.

High level benefits include:

  • significantly expanded test suite, bringing code coverage to 92%
  • remove limits on struct embedding
  • optimize struct field access, json parsing, free list usage, etc
  • multiple performance improvements across the board

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!

1.1.10

03 Oct 04:56
Compare
Choose a tag to compare

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!

1.1.9

27 Sep 09:41
Compare
Choose a tag to compare

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!

1.1.8

14 Sep 10:35
Compare
Choose a tag to compare

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!