BREAKING CHANGE:
- JSON: Skip null fields on decoding when the
json:"omitempty"
tag is set. This matches the encoding behaviour (#261).
IMPROVEMENTS:
- Amino becomes a go-module (requires go 1.11) but keeps dep support for backwards compatibility (#255).
IMPROVEMENTS:
- go-amino compiles again on 32-bit platforms (#242)
BREAKING CHANGE:
- Switch default encoding of unsigned ints (
int
,int32
,int64
) to be on par with proto3's variable length encoding (ofint32
,int64
) (#237)
BREAKING CHANGE:
time.Time
: validate seconds since 1970 are in valid range during encoding; i.e. in the interval [-62135596800, 253402300800)time.Time
: match encoding of time.Time to protobuf's well known type Timestamp (#224)- Rename
MarshalBinary
toMarshalBinaryLengthPrefixed
(#222)
IMPROVEMENTS:
- Add
MustUnmarshalJSON
andMustMarshalJSON
that panic if an error occurs (#228) - Optimize performance by removing
defer
s ingetTypeInfo
(#227 by @ValarDragon) - Optimize performance by removing unnecessary allocation in
UvarintSize
(#225 by @ValarDragon) - Add test that shows compatibility with stdlib (JSON time encoding) (#131 by @odeke-em)
BREAKING CHANGE:
- Write empty (non-nil) struct pointers, unless (is list element and empty_elements isn't set) #206
IMPROVEMENTS:
- Remove dependency on tmlibs/common
BREAKING CHANGE:
- Do not encode zero values in
EncodeTime
(to match proto3's behaviour) (#178, #190) - Do not encode empty structs, unless explicitly enforced
via
amino:"write_empty"
(to match proto3's behaviour) (#179)
IMPROVEMENTS:
- DecodeInt{8, 16} negative limit checks (#125)
FEATURE:
- [aminoscan] aminoscan --color will print ASCII bytes in different colors
BUG FIXES:
- do not err if prefix bytes are exactly 4 (for registered types)
BREAKING CHANGE:
- 100% Proto3 compatibility for primitive types, repeated fields, and embedded structs/messages.
- BigEndian -> LittleEndian
- [u]int[64/32] is (signed) Varint by default, "fixed32" and "fixed64" to use 4 and 8 byte types.
- Amino:JSON [u]int64 and ints are strings.
- Enforce UTC timezone for JSON encoding of time.
NEW FEATURES:
- Seal() on a codec to prevent further modifications. #150
- Global Marshal/Unmarshal methods on a sealed codec with nothing registered.
BREAKING CHANGE:
- Amino:JSON encoding of interfaces use the registered concrete type name, not the disfix bytes.
BUG FIXES:
- MarshalAmino/UnmarshalAmino actually works (sorry!)
NEW FEATURES:
- DeepCopy() copies any Amino object (with support for .DeepCopy() and .MarshalAmino/UnmarshalAmino().
FEATURES:
- Add MustUnmarshalBinary and MustUnmarshalBinaryBare to the Codec
- both methods are analogous to their marshalling counterparts
- both methods will panic in case of an error
- MarshalJSONIndent
IMPROVEMENTS:
- map[string] support for Amino:JSON
BREAKING CHANGE:
- Skip encoding of "void" (nil/empty) struct fields and list elements, esp empty strings
IMPROVEMENTS:
- Better error message with empty inputs
BREAKING CHANGE:
- Treat empty slices and nil the same in binary
IMPROVEMENTS:
- Add indenting to aminoscan
BUG FIXES:
- JSON omitempty fix.
BUG FIXES:
- Fix UnmarshalBinaryReader consuming too much from bufio.
- Fix UnmarshalBinaryReader obeying limit.
BUG FIXES:
- Fix UnmarshalBinaryReader returned n
BREAKING CHANGE:
- wire -> amino
- Protobuf-like encoding
- MarshalAmino/UnmarshalAmino
BREAKING CHANGE:
- New Disamb/Prefix system
- Marshal/Unmarshal Binary/JSON
- JSON is a shim but PR incoming
IMPROVEMENTS:
- data: expose Marshal and Unmarshal methods on
Bytes
to support protobuf - nowriter: start adding new interfaces for improved technical language and organization
BUG FIXES:
- fix incorrect byte write count for integers
BUG FIXES:
- dont use nil for empty byte array (undoes fix from 0.7.0 pending further analysis)
BREAKING CHANGE:
- time: panic on encode, error on decode for times before 1970
- rm codec.go
IMPROVEMENTS:
- various additional comments, guards, and checks
BUG FIXES:
- fix default encoding of time and bytes
- don't panic on ReadTime
- limit the amount of memory that can be allocated
FEATURES:
github.com/tendermint/go-data
->github.com/tendermint/go-wire/data
IMPROVEMENTS:
- Update imports for new
tmlibs
repository
FEATURES:
- Size functions: ByteSliceSize, UvarintSize
- CLI tool
- Expression DSL
- New functions for bools: ReadBool, WriteBool, GetBool, PutBool
- ReadJSONBytes function
IMPROVEMENTS:
- Makefile
- Use arrays instead of slices
- More testing
- Allow omitempty to work on non-comparable types
BUG FIXES:
- Allow time parsing for seconds, milliseconds, and microseconds
- Stop overflows in ReadBinaryBytes
BREAKING CHANGES:
FEATURES:
IMPROVEMENTS:
BUG FIXES: