Grpc Go Versions Save

The Go language implementation of gRPC. HTTP/2 based RPC

v1.63.2

1 month ago

Bugs

  • Fix the user agent string

v1.63.1

1 month ago

Bugs

  • grpc: fixed subchannel log messages to properly reference the parent channel (#7101)
    • Special thanks: @daniel-weisse

API Changes

  • grpc: remove Deprecated tag from Dial and DialContext; these will be deprecated in v1.64 instead (#7103)

v1.61.2

1 month ago

Dependencies

v1.62.2

1 month ago

Dependencies

v1.63.0

1 month ago

Behavior Changes

  • grpc: Return canonical target string from resolver.Address.String() (experimental) (#6923)
  • client & server: when using write buffer pooling, use input value for buffer size instead of size*2 (#6983)
    • Special Thanks: @raghav-stripe

New Features

  • grpc: add ClientConn.CanonicalTarget() to return the canonical target string. (#7006)
  • xds: implement LRS named metrics support (gRFC A64) (#7027)
    • Special Thanks: @danielzhaotongliu
  • grpc: introduce grpc.NewClient to allow users to create new clients in idle mode and with "dns" as the default resolver (#7010)
    • Special Thanks: @bruuuuuuuce

API Changes

  • grpc: stabilize experimental method ClientConn.Target() (#7006)

Bug Fixes

  • xds: fix an issue that would cause the client to send an empty list of resources for LDS/CDS upon reconnecting with the management server (#7026)
  • server: Fix some errors returned by a server when using a grpc.Server as an http.Handler with the Go stdlib HTTP server (#6989)
  • resolver/dns: add SetResolvingTimeout to allow configuring the DNS resolver's global timeout (#6917)
    • Special Thanks: @and1truong
  • Set the security level of Windows named pipes to NoSecurity (#6956)
    • Special Thanks: @irsl

v1.62.1

2 months ago

Bug Fixes

  • xds: fix a bug that results in no matching virtual host found RPC errors due to a difference between the target and LDS resource names (#6997)
  • server: fixed stats handler data InPayload.Length for unary RPC calls (#6766)
    • Special Thanks: @hueypark
  • grpc: the experimental RecvBufferPool DialOption and ServerOption are now active during unary RPCs with compression (#6766)
    • Special Thanks: @hueypark
  • grpc: trim whitespaces in accept-encoding header before determining compressors
    • Special Thanks: @sercand

gcp/observability/v1.0.1

2 months ago

Update dependencies

The latest released version of stackdriver depends upon an unstable version of prometheus. Symbols needed by stackdriver were moved inside of prometheus after this release. To address this, this release updates our dependencies to use an unreleased version of stackdriver (which is archived) that removed its dependency on prometheus entirely. Please see https://github.com/grpc/grpc-go/pull/7008 for more details.

v1.62.0

2 months ago

New Features

  • grpc: Add StaticMethod CallOption as a signal to stats handler that a method is safe to use as an instrument key (#6986)

Behavior Changes

  • grpc: Return canonical target string from ClientConn.Target() and resolver.Address.String() (#6923)

Bug Fixes

  • server: wait to close connection until incoming socket is drained (with timeout) to prevent data loss on client-side (#6977)
    • Special Thanks: @s-matyukevich for discovering the root cause

Performance Improvements

  • *: Allow building without x/net/trace by using grpcnotrace to enable dead code elimination (#6954)
    • Special Thanks: @hugelgupf
  • rand: improve performance and simplify implementation of grpcrand by adopting math/rand's top-level functions for go version 1.21.0 and newer. (#6925)
    • Special Thanks: @kmirzavaziri

Dependencies

  • *: Use google.golang.org/protobuf/proto instead of github.com/golang/protobuf. (#6919)
    • Special Thanks: @Clement-Jean

[!NOTE] The above change in proto library usage introduces a minor behavior change within those libraries. The old github.com/golang/protobuf library would error if given a nil message to Marshal, while the new google.golang.org/protobuf library will successfully output zero bytes in this case. This means server method handlers that did return nil, nil will now return an empty message and no error, while it used to return an error. This also affects the client side, where clients sending nil messages used to fail without sending the RPC, and now they will send an empty message.

v1.61.1

3 months ago

Bug Fixes

  • server: wait to close connection until incoming socket is drained (with timeout) to prevent data loss on client-side (#6977)
    • Special Thanks: @s-matyukevich for discovering the root cause

v1.61.0

3 months ago

New Features

  • resolver: provide method, AuthorityOverrider, to allow resolver.Builders to override the default authority for a ClientConn. (EXPERIMENTAL) (#6752)
    • Special Thanks: @Aditya-Sood
  • xds: add support for mTLS Credentials in xDS bootstrap (gRFC A65) (#6757)
    • Special Thanks: @atollena
  • server: add grpc.WaitForHandlers ServerOption to cause Server.Stop to block until method handlers return. (EXPERIMENTAL) (#6922)

Performance Improvements

  • grpc: skip compression of empty messages as an optimization (#6842)
    • Special Thanks: @jroper
  • orca: use atomic pointer to improve performance in server metrics recorder (#6799)
    • Special Thanks: @danielzhaotongliu

Bug Fixes

  • client: correctly enable TCP keepalives with OS defaults on windows (#6863)
    • Special Thanks: @mmatczuk
  • server: change some stream operations to return UNAVAILABLE instead of UNKNOWN when underlying connection is broken (#6891)
    • Special Thanks: @mustafasen81
  • server: fix GracefulStop to block until all method handlers return (v1.60 regression). (#6922)
  • server: fix two bugs that could lead to panics at shutdown when using NumStreamWorkers (EXPERIMENTAL). (#6856)
  • reflection: do not send invalid descriptors to clients for files that cannot be fully resolved (#6771)
    • Special Thanks: @jhump
  • xds: don't fail channel/server startup when xds creds is specified, but bootstrap is missing certificate providers (#6848)
  • xds: Atomically read and write xDS security configuration client side (#6796)
  • xds/server: fix RDS handling for non-inline route configs (#6915)