Skip to content

Releases: grpc/grpc-go

Release 1.18.1

20 Mar 22:39

Choose a tag to compare

  • client: reset backoff to 0 after a connection is established (#2669)

Release 1.19.0

26 Feb 18:46
2fdaae2

Choose a tag to compare

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)
  • 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

  • examples: add keepalive example (#2637)
  • examples: reflection (#2594)
  • Fix error message formatting (#2615)

Release 1.18.0

15 Jan 21:01
a02b077

Choose a tag to compare

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)
  • 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)

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

04 Dec 23:54
df01485

Choose a tag to compare

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)
  • 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

23 Oct 17:47
2e463a0

Choose a tag to compare

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)
  • 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)
  • stream: never return errors from CloseSend (#2312)
  • Check error when calling compressor.Compress (#2274)

Additional Notes

Special thanks @fastest963 for going above and beyond in helping us debug hard-to-reproduce transport issues.

Release 1.15.0

11 Sep 17:49
8dea3dc

Choose a tag to compare

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

  • testdata: get test assets related to package root instead of GOPATH (#2272)
  • client: fix FailOnNonTempDialError and add a test for it (#2276)

Release 1.14.0

31 Jul 16:49
32fb0ac

Choose a tag to compare

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)
  • 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

  • deprecate stream, move documentation to client|server stream (#2198)
  • resolver: document that SetDefaultScheme should be called at init time (#2217)
  • documentation: clarify SendMsg documentation (#2171)

Release 1.13.0

19 Jun 22:57

Choose a tag to compare

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)
  • 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)
  • 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)
  • Clarify newCCResolverWrapper documentation. (#2100)
  • documentation: create doc describing grpc-go's log levels and their usages (#2033)

Release 1.12.2

07 Jun 17:30

Choose a tag to compare

  • transport: account for user configured small io write buffer. (#2092)

Release 1.12.1

06 Jun 17:18

Choose a tag to compare

  • transport/server: fix race between writing status and header (#2074)