Skip to content

v1.29.0

Compare
Choose a tag to compare
@abhinav abhinav released this 30 Aug 19:15
· 86 commits to master since this release
efbbb99

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 and envelope/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 new Default 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 another protocol.Binary* export.
  • All generated types now include Encode and Decode methods that can
    serialize or deserialize those types using stream.Writer and
    stream.Reader objects.
  • ast: All nodes now track the column numbers they're defined on in addition
    to the line numbers.
  • ast: Add Annotations(Node) function that reports the annotations for AST
    nodes that record annotations.

Changed

  • protocol:
    • Deprecate Binary and EnvelopeAgnosticBinary in favor of
      protocol/binary.Default.
    • Deprecate NoEnvelopeResponder, EnvelopeV0Responder, and
      EnvelopeV1Responder in favor of versions declared in the
      protocol/binary package.

Thanks to @witriew, @dianale31, @usmyth, and @jparise for their contributions
to this release.