You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a very important release, building upon the optimization introduced in v1.2.4.
Changes include:
support gollvm in addition to gccgo in default high-performance mode
support codec.safe and codec.notfastpath as preferred build tags (replacing safe and notfastpath)
support Canonical mode with MissingFielder
robust handling of codecgen caveats wrt Canonical|CheckCircularRef flags and MissingFielder implementations
robust handling of transient values, where we track if a value has internal pointers and handle appropriately
reduce use of global values: all in-use values are scoped to an Encoder or Decoder
implement stateManager for Encoder/Decoder, supporting capture, reset and restore functions.
side encoding or decoding can now reuse an Encoder/Decoder, leveraging state management to
capture its state, do something else, then restore its state and continue
support running all tests in parallel, so we can shake out any concurrency issues
Fix issue in rpc where writer was not being flushed, causing a hang where reader was
waiting on an encoded value
Support shallow copies of a Handle, to support parallel execution where we need to
temporarily change some Handler fields
This is the best release yet. Please try it out and share your experiences.
This is a very important release, which focused on optimization across the board to
ensure that go-codec is the most performant library for popular encoding formats.
Optimizations across the board include:
optimization by eliding allocation where not necessary e.g.
when encoding non-addressable value with ptr receiver
map iteration/access
decoding floats
creating slices or sub-slices (removing temporary slice allocated on heap)
decoding map keys if both key and value kinds are scalars
decoding map values if value kind is a scalar
better reuse of pool'ed []byte(s)
leveraging mapXXX_fastXXX calls where possible
better inlining (where applicable) e.g. arrayStart, mapStart, etc
support complex numbers (where we treat complex numbers as floats with imaginary part = 0)
optimize encoding and decoding arrays, including using fast-paths for slices as applicable
use runtime's growslice algorithm when growing arrays for better performance
optimize nextValueBytes and swallow so they do not allocate when applicable e.g.
do not allocate/copy bytes if swallow is called or you were decoding from a []byte (just return a sub-slice)
optimize isEmptyStruct to just compare if value == zero'es (instead of field by field),
simulating comparing to zero value.
To guarantee better fairness in benchmarking, we did the following:
use common types in benchmarks and common methods to ensure fairness in benchmarks
run benchmarks with ZeroCopy=true and (MapValue|Interface|SliceElement)Reset = true,
aligning with how other libraries operate by default
With these changes, we have reflection-based mode performing within 25% of codecgen,
with similar allocation numbers as codecgen. For example, encoding typically has just 1
allocation without codecgen (just as in codecgen).
This is the best release yet. Please try it out and share your experiences.
This optimizes decoding for zero-copy mode when decoding from a string or []byte.
With this mode, we see 50% reduction in allocation in both codecgen and normal execution,
and this gives performance better than other libraries (easyjson, json-iterator, etc)
while providing much more features and supported formats (json, cbor, msgpack, simple, etc).
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.
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.
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.
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.
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.
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.
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.
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!
Configuration
📅 Schedule: (UTC)
Branch creation
"on the first day of the month"
Automerge
At any time (no schedule defined)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
If you want to rebase/retry this PR, check this box
renovateBot
changed the title
Update module github.com/ugorji/go/codec to v1.2.7
fix(deps): update module github.com/ugorji/go/codec to v1.2.11
Mar 17, 2023
renovateBot
changed the title
fix(deps): update module github.com/ugorji/go/codec to v1.2.11
fix(deps): update module github.com/ugorji/go/codec to v1.2.12
Nov 30, 2023
renovateBot
changed the title
fix(deps): update module github.com/ugorji/go/codec to v1.2.12
fix(deps): update module github.com/ugorji/go/codec to v1.2.13
May 27, 2025
renovateBot
changed the title
fix(deps): update module github.com/ugorji/go/codec to v1.2.13
fix(deps): update module github.com/ugorji/go/codec to v1.2.14
May 27, 2025
renovateBot
changed the title
fix(deps): update module github.com/ugorji/go/codec to v1.2.14
fix(deps): update module github.com/ugorji/go/codec to v1.3.0
Jun 15, 2025
renovateBot
changed the title
fix(deps): update module github.com/ugorji/go/codec to v1.3.0
fix(deps): update module github.com/ugorji/go/codec to v1.3.1
Oct 28, 2025
In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):
The go directive was updated for compatibility reasons
Details:
Package
Change
go
1.13 -> 1.21
renovateBot
changed the title
fix(deps): update module github.com/ugorji/go/codec to v1.3.1
Update module github.com/ugorji/go/codec to v1.3.1
Apr 8, 2026
renovateBot
changed the title
Update module github.com/ugorji/go/codec to v1.3.1
Update module github.com/ugorji/go/codec to v1.3.1 - autoclosed
Apr 28, 2026
renovateBot
changed the title
Update module github.com/ugorji/go/codec to v1.3.1 - autoclosed
Update module github.com/ugorji/go/codec to v1.3.1
May 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.1.7→v1.3.1Release Notes
ugorji/go (github.com/ugorji/go/codec)
v1.2.14: 1.2.14Compare Source
Release 1.2.14
This is a production release of go-codec.
While effectively equivalent to v1.2.13, this release serves as:
subsequent patch releases (if needed e.g. v1.2.15) will require a release branch.
v1.2.13: 1.2.13Compare Source
Release 1.2.13
This is a production release of go-codec.
Changes include:
Please try it out and share your experiences.
v1.2.12: 1.2.12Compare Source
Release 1.2.12
This is a production release of go-codec.
Changes include:
Please try it out and share your experiences.
v1.2.11: 1.2.11Compare Source
Release 1.2.11
This is a production release of go-codec.
Changes include:
Please try it out and share your experiences.
v1.2.10: 1.2.10Compare Source
Release 1.2.10
This is a production release of go-codec.
Changes include:
Please try it out and share your experiences.
v1.2.9: 1.2.9Compare Source
This is a production release of go-codec.
Changes include:
Please try it out and share your experiences.
v1.2.8: 1.2.8Compare Source
This is a production release of go-codec.
Changes include:
Please try it out and share your experiences.
v1.2.7: 1.2.7Compare Source
This is a production release of go-codec.
Changes include:
Please try it out and share your experiences.
v1.2.6: 1.2.6Compare Source
This is a production release of go-codec.
Changes include:
you can decode a float/integer/unsigned integer from any number in stream
Please try it out and share your experiences.
v1.2.5: 1.2.5Compare Source
This is a production release of go-codec.
This is a very important release, building upon the optimization introduced in v1.2.4.
Changes include:
capture its state, do something else, then restore its state and continue
waiting on an encoded value
temporarily change some Handler fields
This is the best release yet. Please try it out and share your experiences.
v1.2.4: 1.2.4Compare Source
Release 1.2.4
This is a production release of go-codec.
This is a very important release, which focused on optimization across the board to
ensure that go-codec is the most performant library for popular encoding formats.
Optimizations across the board include:
do not allocate/copy bytes if swallow is called or you were decoding from a []byte (just return a sub-slice)
simulating comparing to zero value.
To guarantee better fairness in benchmarking, we did the following:
aligning with how other libraries operate by default
With these changes, we have reflection-based mode performing within 25% of codecgen,
with similar allocation numbers as codecgen. For example, encoding typically has just 1
allocation without codecgen (just as in codecgen).
This is the best release yet. Please try it out and share your experiences.
v1.2.3: 1.2.3Compare Source
This is a production release of go-codec.
This optimizes decoding for zero-copy mode when decoding from a string or []byte.
With this mode, we see 50% reduction in allocation in both codecgen and normal execution,
and this gives performance better than other libraries (easyjson, json-iterator, etc)
while providing much more features and supported formats (json, cbor, msgpack, simple, etc).
v1.2.2: 1.2.2Compare Source
This is a production release of go-codec.
This includes a fix for decoding into nested anonymous fields (github issue #350).
v1.2.1: 1.2.1Compare Source
This is a production release of go-codec.
This includes a fix for codecgen when using omitempty (github issue #344).
v1.2.0: 1.2.0Compare Source
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
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: 1.1.14Compare Source
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
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: 1.1.13Compare Source
This is a production release of go-codec.
This release should be about 10% faster during decode than previous releases.
Changes
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.12: 1.1.12Compare Source
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:
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
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.11: 1.1.11Compare Source
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:
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:
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: 1.1.10Compare Source
This is a production release of go-codec.
The main benefits are much expanded testing and associated code fixes, re-factoring and 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: 1.1.9Compare Source
This is a production release of go-codec.
The main benefits are streamlined go modules support, re-factoring and performance improvements:
go test -coverreports > 90%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.8: 1.1.8Compare Source
This is a production release of go-codec.
The main benefits are a number of bug fixes and some 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!
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.