Releases: grpc/grpc-go
Releases · grpc/grpc-go
Release 1.30.0
API Changes
- This release adds an xDS URI scheme called
xds
. This is the stable version of the schemexds-experimental
that was introduced in v1.28.0.xds-experimental
scheme will be removed in subsequent releases so you must switch toxds
scheme instead.xds
scheme is a client side implementation of xDSv2 APIs. This allows a gRPC client written in Go to receive configuration from an xDSv2 API compatible server and use that configuration to load balance RPCs. In this release, only the virtual host matching, default path (“” or “/”) matching and cluster route action are supported. The features supported in a given release are documented here. - balancer: move Balancer and Picker to V2; delete legacy API (#3180, #3431)
- Replace
balancer.Balancer
andbalancer.Picker
with theV2Balancer
andV2Picker
versions. - Remove
balancer.ClientConn.UpdateBalancerState
. - Remove the original balancer plugin API, based on
grpc.Balancer
, and all related functionality. - Remove the deprecated
naming
package.
- Replace
Behavior Changes
- grpclb, dns: pass balancer addresses via resolver.State (#3614)
New Features
- balancer: support hierarchical paths in addresses (#3494)
- client: option to surface connection errors to callers (#3430)
- Special Thanks: @sethp-nr
- credentials: pass address attributes from balancer to creds handshaker. (#3548)
- credentials: local creds implementation (#3517)
- advancedtls: add fine-grained verification levels in XXXOptions (#3454)
- xds: handle weighted cluster as route action (#3613)
- xds: add weighted_target balancer (#3541)
Performance Improvements
- transport: move append of header and data down to http2 write loop to save garbage (#3568)
- Special Thanks: @bboreham
- server.go: use worker goroutines for fewer stack allocations (#3204)
- Special Thanks: @adtac
Bug Fixes
- stream: fix calloption.After() race in finish (#3672)
- retry: prevent per-RPC creds error from being transparently retried (#3677, #3691)
- cache: callback without cache's mutex (#3603)
- client: properly check GRPC_GO_IGNORE_TXT_ERRORS environment variable (#3532)
- Special Thanks: @t33m
- balancergroup: fix connectivity state (#3585)
- xds: use google default creds (#3673)
- xds: accept either "" or "/" as the prefix for the default route (#3535)
- xds: reject RDS response containing match with case-sensitive false (#3592)
Documentation
Release 1.29.1
- status: remove Error method accidentally added to *Status (#3561)
Release 1.29.0
New Features
Bug Fixes
- xds: update nonce even if the ACK/NACK is not sent on wire (#3497)
- xds: add temporary logging to LRS (#3490)
- wrr: make random wrr thread safe (#3470)
- transport: fix handling of header metadata in serverHandler (#3484)
- Special Thanks: @misberner
- balancer: change roundrobin to accept empty address list (#3491)
- stats: set response compression codec on stats.InHeader and stats.OutHeader (#3390)
- Special Thanks: @MatthewDolan
Documentation
Release 1.28.1
Release 1.28.0
New Features
- This release adds an experimental client side implementation of xDSv2 APIs. This allows a gRPC client written in Go to receive configuration from an xDSv2 API compatible server and use that configuration to load balance RPCs. In this release, only the virtual host matching and cluster route action is supported. More features will be added in future.
- grpclb: support explicit fallback signal (#3351)
- interceptor: new APIs for chaining server interceptors. (#3336)
- Special Thanks: @tukeJonny
- stats: add client side user agent to outgoing header (#3331)
- Special Thanks: @piotrkowalczuk
API Changes
- credentials: deprecate ProtocolInfo.SecurityVersion (#3372)
Bug Fixes
- interop: Build grpclb_fallback/client.go only for linux. (#3375)
- internal: Update service_config.pb.go (#3365)
- internal: Move parseTarget function into internal package and export it. (#3368)
- balancer/base: keep bad SubConns in TransientFailure until Ready (#3366)
- balancer/base: consider an empty address list an error (#3361)
Dependencies
- protobuf: update protoc-gen-go version and generated code (#3345)
Release v1.27.1
- balancer/base: consider an empty address list an error
Release 1.27.0
API Changes
- balancer/resolver: remove temporary backward-compatibility type aliases (#3309)
Behavior Changes
- dns: ignore TXT errors unless GRPC_GO_IGNORE_TXT_ERRORS=false (#3299)
New Features
- client: add interface for ClientConn to be accepted by generated code (#3334)
- client: add WithResolvers option for specifying client-local resolvers (#3320)
- advancedtls: add new module for advanced TLS handshaker (#3187)
- credentials: create API for transport security level information (#3214)
Bug Fixes
- trace: fix getting family for the method (#3216)
- Special Thanks: @andyxning
Release 1.26.0
API Changes
- balancer: add V2Picker, ClientConn.UpdateState, SubConnState.ConnectionError (#3186)
- resolver: introduce attributes package and use it for Address and State (#3151)
- resolver: rename Option to Options, leaving type aliases for now (#3175)
Behavior Changes
- dns: disable SRV record lookups unless grpclb is imported (#3149)
- dns: stop polling for updates; use UpdateState API (#3165)
New Features
- stats: attach metadata to In/Out Headers/Trailers (#3169)
- Special Thanks: @MatthewDolan
- xds: Implementation of the CDS LB policy. (#3224)
- xds: Implementation of xds_resolver using LDS/RDS (#3183)
- grpclb: do not send redundant empty load reports to remote LB (#3249)
Performance Improvements
- server.go: combine defers to reduce stack usage (#3208)
- Special Thanks: @adtac
- profiling: add internal changes to support profiling of gRPC (#3158)
- Special Thanks: @adtac
Bug Fixes
- dns: do not call NewServiceConfig when lookups are disabled (#3201)
- client: set grpc-accept-encoding header based on outgoing compressor (#3139)
- Special Thanks: @jiacai2050
- server: Keepalive pings should be sent every [Time] period (#3172)
Documentation
Release 1.25.1
- resolver: re-add dns and passthrough packages as references to internal versions
Release 1.25.0
API Changes
- resolver: move dns and passthrough to internal (#3116)
New Features
- credentials: add RequestInfo to context passed to GetRequestMetadata (#3057)
- Special Thanks: @shanel-at-google
- resolver: add State fields to support error handling (#2951)
- clientconn: override authority with address's ServerName, if set (#3073)
- Special Thanks: @jpbetz
- server: add ServerOption HeaderTableSize (#2931)
- Special Thanks: @MoZhonghua
- resolver: Add new fields to resolver.BuildOption struct to support dialing a remote name resolver (#3098)
- client: add WithConnectParams to configure connection backoff and timeout (#2960)
Performance Improvements
Bug Fixes
- interop, examples: use localhost instead of 127.0.0.1 (#3124)
- client: fix race between client-side stream cancellation and compressed server data arriving (#3054)
- grpclb: enter fallback if no balancer addresses are available (#3119)
- client: fix keepalive ping rate (#3102)
- clientconn: fix potential deadlock caused by ResetConnectBackoff (#3051)