v1.29.0
This release includes support for (de)serializing Thrift structs directly
to/from IO streams without converting them to the intermediate wire.Value
representation. This method of (de)serialization is significantly faster and
less memory intensive.
Added
protocol/stream
andenvelope/stream
packages defining the core types
needed to implement support for streaming serialization.protocol
:BinaryStreamer
that exports the Binary protocol as a
stream.Protocol
.protocol/binary
: The newDefault
variable is the default value of
*binary.Protocol
that most users should use. This variable retains the
struct type so that it can be used for any new interfaces declared in the
future without anotherprotocol.Binary*
export.- All generated types now include
Encode
andDecode
methods that can
serialize or deserialize those types usingstream.Writer
and
stream.Reader
objects. ast
: All nodes now track the column numbers they're defined on in addition
to the line numbers.ast
: AddAnnotations(Node)
function that reports the annotations for AST
nodes that record annotations.
Changed
protocol
:- Deprecate
Binary
andEnvelopeAgnosticBinary
in favor of
protocol/binary.Default
. - Deprecate
NoEnvelopeResponder
,EnvelopeV0Responder
, and
EnvelopeV1Responder
in favor of versions declared in the
protocol/binary
package.
- Deprecate
Thanks to @witriew, @dianale31, @usmyth, and @jparise for their contributions
to this release.