Releases: grpc/grpc-go
Releases · grpc/grpc-go
Release 1.18.1
- client: reset backoff to 0 after a connection is established (#2669)
Release 1.19.0
API Changes
- dialOption: export WithContextDialer() (#2629)
- client: deprecate CallCustomCodec and provide new version using encoding.Codec (#2556)
Behavior Changes
- keepalive: apply minimum ping time of 10s to client and 1s to server (#2642)
Bug Fixes
- roundrobin: randomize starting address when rebuilding the picker (#2579)
- client: fix handling of GRPC_GO_REQUIRE_HANDSHAKE=on to not interpret as "hybrid" (#2603)
- Special Thanks: @dntj
- client: minor v1 balancer wrapper fixes (#2511)
- transport: resetTransport connect deadline is across addresses (#2540)
- client: don't allow io.EOF to be passed from balancer to user (#2604)
- grpc: limit reader with maxReceiveMessageSize (#2617)
- transport: fixes established streams leak in loopy writer. (#2610)
Documentation
Release 1.18.0
API Changes
- client: deprecates FailFast & replaces its use by WaitForReady. (#2522)
Behavior Changes
- client: make handshake required 'on' by default, not 'hybrid' (#2565)
- See issue #2406 for more information
New Features
- health: shutdown server to set NOT_SERVING and disallow future updates (#2513)
- channelz: implement GetServer method (#2537)
- Special Thanks: @kazegusuri
- health: resume health server (#2528)
Bug Fixes
- client: report last connection error to RPCs via v1 balancer API (#2508)
- grpclb: re-resolve when the stream to GRPCLB balancer fails (#2502)
- client: do not expose trailer if client cancels RPC before receiving its status (#2554)
- grpclb: filter out grpclb addresses if balancer in use is not grpclb (#2509)
- channelz: respect max_results in listing methods (#2516)
- Special Thanks: @kazegusuri
Documentation
- example: add echo proto (#2505)
- example: load_balancing (#2504)
- example: deadline (#2494)
- example: compression (#2527)
- example: interceptor (#2541)
- example: errors (#2521)
- example: authentication (#2531)
- example: debugging (#2536)
- example: encryption (#2524)
- example: errors (#2534)
- example: metadata (#2500)
- example: wait_for_ready (#2503)
- example: multiplex (#2477)
- example: cancellation (#2525)
- example: name_resolving (#2514)
Release 1.17.0
NOTICE
Upcoming connection establishment behavior change in the next release. Please see #2406 for more details.
Dependencies
- Remove support for Go1.6-1.8 (#2428)
New Features
- client: add GRPC_GO_REQUIRE_HANDSHAKE options to control connection behavior (#2464)
- proxy: support basic authentication (#2426)
- client: set TCP_USER_TIMEOUT socket option for linux (#2307)
- Special Thanks: @mikeraimondi
- binarylog: call binary log in Client and Server (#2388)
- health: Client LB channel health checking (#2387)
Performance Improvements
- transport: increase BDP limit to 16MB to improve performance for high latency networks (#2455)
Bug Fixes
- client: ensure resolver operations are handled in order (#2446)
- channelz: returns sockets after startID in GetServerSockets() (#2401)
- client: block RPCs early until the resolver has returned addresses (#2409)
Documentation
- docs: clarify SendMsg/CloseSend usage (#2418)
Release 1.16.0
New Features
- health: implement Watch method in server (#2365)
- balancer: add trailer metadata to DoneInfo (#2359)
- balancer: add header metadata to PickOptions (#2376)
- resolver/dns: support custom dns authority (#2265)
- Special Thanks: @elliots
- channelz: channel tracing (#2262)
- credentials: support google default creds (#2315)
Bug Fixes
- server: fix handling of RPC timeouts that overflow int64 nanos (#2379)
- credentials/alts: pass the target name to ALTS handshaker (#2319)
- clientconn: fix race when service config updated while closing (#2371)
- transport: ensure client always closes streams (#2354)
- Special Thanks: @siggy
- stream: never return errors from CloseSend (#2312)
- Check error when calling compressor.Compress (#2274)
- Special Thanks: @JelteF
Additional Notes
Special thanks @fastest963 for going above and beyond in helping us debug hard-to-reproduce transport issues.
Release 1.15.0
Dependencies
- Initial go.mod module definition and corresponding Travis/vet.sh changes (#2281)
API Changes
- channelz: enable channelz when importing channelz/service package, delete experimental grpc.RegisterChannelz (#2277)
- health: update pb.go and add watch method (#2263)
- credentials/alts: add ALTS AuthInfoFromPeer API (#2269)
New Features
- client: Add ClientConn.ResetConnectBackoff to force reconnections on demand (#2273)
Bug Fixes
Release 1.14.0
API Changes
- transport: move to internal to make room for new, public transport API (#2212)
- grpclb: remove old proto generated code (#2143)
Behavior Changes
- resolver/dns: error if target ends with a colon instead of assuming the default port (#2150)
- Revert stickiness support (#2175)
New Features
- channelz: stage 4 - add security and socket option info with appengine build tags (#2149)
- ClientConn: add Target() returning target string (#2233)
- balancer: add rpc method to PickOptions (#2204)
- Special Thanks: @mfycheng
- transport: set and respect HTTP/2 SETTINGS_MAX_HEADER_LIST_SIZE (#2084)
- client: Implement gRFC A6: configurable client-side retry support (#2111)
- grpc: update dial/server buffer options to support a "disable" setting (#2147)
Bug Fixes
- errors: convert io.ErrUnexpectedEOF to a codes.Internal status error (#2228)
- client: fix race in connecting that leads to broken connection state (#2208)
- resolver/dns: exponential retry when getting empty address list (#2201)
- transport: double-check deadline when processing server cancelation (#2211)
Documentation
Release 1.13.0
API Changes
- channelz: move APIs to internal except channelz service (#2157)
- grpclb: split grpclb out of top level grpc package (#2107)
New Features
- credentials/alts: Add AuthInfoFromContext utility API (#2062)
- status: Introduce FromContextError convenience function (#2057)
Bug Fixes
- internal/grpcrand: new package for concurrency-safe randoms (#2106)
- codes: fix: marshal/unmarshal a Code to JSON fails (#2116)
- Special Thanks: @fho
- transport: fix race between new stream and window updates (#2144)
- status: handle invalid utf-8 characters (#2109) (#2134)
- grpclb: don't log grpclb server ending connection as error (#2162)
- Special Thanks: @krzysztofdrys
- alts: copy more credentials fields in Clone() (#2119)
- transport: notify controlbuf that transport is gracefully closing to ensure proper cleanup (#2158)
- transport: avoid extra work for keepalive when it's disabled. (#2148)
- transport: account for user configured small io write buffer. (#2092)
- grpc: do not percent encode character tilde (#2139)
- grpclb: backoff for RPC call if init handshake was unsucessful (#2077)
- transport: reduce error logs (#2117)
- resolver: throw an error for non-default DNS authority. (#2067)
- Special Thanks: @jsha
- transport/server: fix race between writing status and header (#2074)
Documentation
- documentation: add stream lifecycle doc to NewStream (#2060)
- clarify CloseSend vs CloseAndRecv; better formatting (#2071)
- documentation: Add initial documentation on concurrency (#2034)
- Special Thanks: @enocom
- Clarify newCCResolverWrapper documentation. (#2100)
- Special Thanks: @gnoack
- documentation: create doc describing grpc-go's log levels and their usages (#2033)
Release 1.12.2
- transport: account for user configured small io write buffer. (#2092)
Release 1.12.1
- transport/server: fix race between writing status and header (#2074)