NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Go modules · #2675 by repository stars
Last release 14 days ago
24 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Rarely documented
notes for 10 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
214 releases · first in 2020
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
fix(composite): return error on truncated unknown TLV value instead of panicking ( #415 ) by @SAY-5 in #416
Full Changelog: v0.26.0...v0.26.1
Nothing published for this version
Nothing published for this version
Nothing published for this version
fix: support TagSpec TLV fields in JSON export/import by @alovak in #408
Full Changelog: v0.25.3...v0.26.0
Nothing published for this version
feat: add UnknownTags helper function to get skipped unknown tags by @alovak in #405
Full Changelog: v0.25.2...v0.25.3
Nothing published for this version
Support composites with optional repeating fields by @gyrolc in #398
allow preserving unknown fields instead of discarding them by @alovak in #397
Full Changelog: v0.25.0...v0.25.1
allow preserving unknown fields instead of discarding them by @alovak in #393
GetField() now returns nil for unset fields: GetField(id) returns nil if the field is not set or not defined in the specification, whereas previously it always returned a field instance.
Migration:
GetString(id) / GetBytes(id) which handle nil safely and return zero values for unset fieldsThis change aligns with the new lazy field loading behavior and makes field presence checking explicit. It fixes the issue introduced in v0.24.0 where getting the value of a field that wasn't set was setting it.
Full Changelog: v0.24.0...v0.25.0
Nothing published for this version
Lazy load field by @alovak in #392
Lazy load field by @alovak in #392
Lazy field loading delivers significant performance gains:
| Operation | Time | Memory | Allocations |
|---|---|---|---|
| Marshal | -27% | -33% | -10% |
| Unpack | -29% | -28% | -5% |
Fields are now created on-demand rather than pre-allocated from the specification. Only fields actually used in a message consume memory.
In production scenarios where specs define many more fields than individual message types use, improvements across all metrics can exceed 80%.
getOrCreateField() and createField() methodsNewInstance() methodPartial unpacking on failure: When unpacking fails on a field, that field is now created on the message/composite with its zero value, whereas previously it wasn't created at all. This allows partial data recovery but changes behavior for error handling code that checks field presence.
Error message changes: Several error messages have been updated for clarity:
Removed exported APIs:
CompositeWithSubfields interfaceConstructSubfields() method on CompositeCreateSubfield() functionCreateSubfields() functionFull Changelog: v0.23.5...v0.24.0
Marshal unmarshal by path by @alovak in #391
Nothing published for this version
Nothing published for this version
Nothing published for this version
fix: a binary field can marshal to a named string by @Inuart in #371
Nothing published for this version
docs: rework, reorg and improve readme by @alovak in #345
Full Changelog: v0.23.2...v0.23.3
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →