Releases: grpc/grpc-go
Releases · grpc/grpc-go
Release 1.6.0
API Changes
- Add and use connectivity package for states (#1430)
- metadata: Remove NewContext and FromContext for gRFC L7 (#1392)
- Remove expiration_interval from grpclb message (#1477)
Features
- Add status details support to server HTTP handler (#1438)
- stats: add methods to allow setting grpc-trace-bin and grpc-tags-bin headers (#1404)
- Expose ConnectivityState of a ClientConn. (#1385)
- DNS resolver (#1300)
Performance
Bug fixes
- When sending a non heads-up goaway close the connection if there are no active streams. (#1474)
- Fix grpclb protos to not cause re-registration of types (#1466)
- transport: fix handling of InTapHandle's returned context (#1461)
- transport: Fix deadlock in client keepalive. (#1460)
- Deduplicate dns record in lookup (#1454)
- Fix host string passed to PerRPCCredentials (#1433)
- Fix a goroutine leak in DialContext (#1424)
- Set peer before sending request (#1423)
- Don't use 64-bit integers with atomic. (#1411)
- Automatic WriteStatus for RecvMsg/SendMsg error on server side (#1409)
- Server should send 2 goaway messages to gracefully shutdown the connection. (#1403)
- Enabling client process multiple GoAways (#1393)
- addrConn: change address to slice of address (#1376)
- Do not create new addrConn when connection error happens (#1369)
- Validate send quota again after acquiring writable channel (#1367)
Documentation
- add comment for the package in benchmark/benchmain/main.go (#1464)
- Add -u to installation command (#1451)
- Update ServerInHandle comments (#1437)
- Add 'experimental' note to ServeHTTP godoc (#1429)
- Use
NewOutgoingContext
in the metadata doc (#1425) - Fix missing and wrong license (#1422)
- Change comment on stats.End.Error (#1418)
- Document Server.ServeHTTP (#1406)
- Use log instead of grpclog in routeguide example (#1395)
- Add doc in default implementation fatal functions on os.Exit() (#1365)
Testing
- Check "x/net/context" with
go vet
like "context" (#1490) - Remove unnecessary function handleStreamSuspension (#1468)
- Call cancel function to avoid ctx leak (#1465)
- go-generate pb.go files and check in Travis to make sure they don't change (#1426)
- Add flags for tls file path (#1419)
- Call cancel on contexts in tests (#1412)
- benchmark: don't stop timer until after workers are done (#1407)
- Assign testdata path to correct variable (#1397)
- Do not call testdata.Path when defining flags (#1394)
- Fix bufconn.Close to not be blocking. (#1377)
- benchmark: add benchmain/main.go to run benchmark with flag set (#1352)
- benchmark: remove multi-layer for loop (#1339)
- Add testdata package and unify testdata to only one dir (#1297)
Release 1.5.2
Release 1.5.1
- Do not create new addrConn when connection error happens (#1369)
Release 1.5.0
Performance
- BDP estimation and window update. (#1310)
- Do not flush NewStream header on client side for unary RPCs and streaming RPCs with requests. (#1343)
- Change objects in recvBuffer queue from interface to concrete type to reduce allocs (#1029)
- Don't create new reader in recvMsg (#940)
API change
- Add support for grpc.SupportPackageIsVersion3 back (#1331)
- Add Severity and VerboseLevel to grpclog. (#922)
Behavior change
- Transport errors should be coded Unavailable instead of internal. (#1307)
- Catch invalid use of Server.RegisterService after Register.Serve (#828)
Bug fixes
- Fix deadlock of roundrobin balancer (#1353)
- Use log severity and verbosity level (#1340)
- Protect bytesSent and bytesReceived with mutex to avoid datarace (#1318)
- Support IPv6 addresses in grpclb (#1303)
- Return header in Stream.Header() if available (#1281)
- Fix error handling on Stream deletion (#1275)
Documentation
- Add documentation to deprecate WithTimeout dial option (#1333)
- Specify characters allowed in metadata keys (#1299)
- Update LICENSE to Apache 2 (#1290)
- Update the path of guide (#950)
Testing
Release 1.4.2
- Protect bytesSent and bytesReceived with mutex to avoid datarace (#1318)
Release 1.4.1
- transport: fix error handling on Stream deletion (#1275)
Release 1.4.0
New features
- Implement
EmptyCallOption
(#1244) - Adding dial options for PerRPCCredentials (#1225)
- Expand service config support (#1165)
Performance
- Piggyback window updates for connection with those of a stream. (#1273)
- Decouple transport flow control from application read. (#1265)
- Expand stream's flow control in case of an active read. (#1248)
- Eagerly set a pointer to nil to help GC (#1232)
- Use pooled gzip.{Writer,Reader} in gzip{Compressor,Decompressor} (#1217)
- Make window size configurable. (#1210)
Bug fixes
- Server shouldn't Fatalf in case it fails to encode. (#1276)
- Avoid uint32 overflow when applying initial window size setting (#1268)
- Initialize stream properly in handler_server. (#1260)
- Avoid panic caused by stdlib context package errors (#1258)
- grpclb balancer.Close() should not panic if called more than once (#1250)
- Reuse Token for serviceAccount credentials (#1238)
- add logs to grpclb on send and recv (#1235)
- Calling handleRPC with context derived from the original (#1227)
- Reset proto before unmarshalling (#1222)
- don't add defer func if stats handler is nil (#1214)
- Fix go buildable source file problem (#1213)
- Pass custom dialer to balancer (#1205)
- Fix http status code to grpc status conversion (#1195)
- make ServerOption panic messages more clear. (#1194)
- Log the actual error when inTapHandle fails in http2Server (#1185)
- tentative fix to a flow control over-give-back bug (#1170)
- Add stats test for client streaming and server streaming RPCs (#1140)
- Ensure that RoundRobin.Close() does not panic. (#1139)
- fix server panic trying to send on stream as client disconnects #1111 (#1115)
- Suppress server log message when EOF without receiving data for preface (#1052)
- clientconn, server: replace time.After with time.NewTimer (#998)
- reflection: check ServerReflectionInfo error (#958)
Documentation
- transport: fix minor typo in 'GoAway' godoc (#1284)
- Update references to route_guide.proto to use new directory name (#1270)
- Improve contributing.md and add issue template (#1267)
- Fixed comment spelling (#1254)
- Defined GA and add pointer to benchmarks (#1239)
- Add doc and example for mocking streaming RPCs (#1230)
- Fix doc (#1221)
- stress/client: fix minor typo (#957)
Testing
Release 1.3.0
API change
- Never encode binary metadata within the metadata map (#1188)
- Update grpclb proto and move grpclb into package grpc (#1186)
- Change status package to deal with concrete types instead of interfaces (#1171)
- Behavior change: do not strip out gRPC user-agent (#1158)
- Separate incoming and outgoing metadata in context (#1157)
- Add status package for reporting gRPC status and errors (#1156)
- remove support for go1.5 (#1132)
New Feature
- Client load report for grpclb. (#1200)
- Client should update keepalive parameters upon receiving GoAway (#1169)
- Implementation for server enforcement of keepalive policy. (#1147)
- Add grpc.Version string and use it in the UA (#1144)
- Support max age(#1119)
- Support proxy with dialer (#1098)
Behavior change
- populate initReq target name and fix IP []byte type in grpclb (#1145)
- pick a random address if the current in use is deleted by resolver (#1135)
- :authority should include port number (#1123)
- Don't return an error from dial if the balancer returns no initial servers (#1112)
Bug fix
- Fix nil pointer dereferences from status.FromProto(nil) (#1211)
- Use unpadded base64 encoding for binary metadata headers; handle padded or unpadded input (#1209)
- Use proto.Equal for equalities on Go proto messages (#1204)
- Move handling stats.End to clientStream.finish() (#1182)
- grpclb should connect to the second balancer (#1181)
- add error handling for InvalidArgument error from sendResponse() (#1173)
- transport: implement GoString on Stream (#1167)
- Bug fix(Issue#1141): Check if peer is nil before trying to derefer it. (#1143)
- Make sure all in-flight streams close when ClientConn.Close() is called. (#1136)
Performance
- opt in to frame reuse on the framer to reduce garbage (#1096)
- use proto.Buffer API for protobuf codec and cache proto.Buffer structs (#1010)
Documentation
- add document to ClientHandshake about returning temporary error (#1125)
Release 1.2.1
Release 1.2.0
New features
- Health check keep alive client side implementation #993
- Client should have a check on maximum size of received message size #1117
- ClientHandshake returns AuthInfo #956
- Add calloption to retrieve peer information #1066
Bug fixes
- Cap the client side default number of max concurrent streams per connection to 100 #1071
- Use codes.Code.String() rather than logging integers #1027
- Account for padding in flow control, when received frame uses it #1076
- Client should send a RST_STREAM before freeing the quota on rpc context timeout #1124
Documentation
- Add document and example for go mock #1021