This is the 1.29.0 release (gringotts) of gRPC Core.
Please see the notes for the previous releases here: https://github.com/grpc/grpc/releases. Please consult https://grpc.io/ for all information regarding this product.
This release contains refinements, improvements, and bug fixes, with highlights listed below.
A significant change was made in #22575 where gRPC Core will check whether the decompressed message fits in the configured limit for the maximum message length that the channel can receive. (The default limit is 4MB.)
Core
- Move decompression into gRPC Core. (#22575)
- Introduce CFRunLoop based iomgr. (#22423)
- Add option for logging keepalive pings. (#22640)
- Clamp the receive flow control window size to ((1 << 31) - 1). (#22615)
- CallCredentials debug string API. (#21984)
C++
- Append to CMAKE_MODULE_PATH instead of replacing it. (#22380)
- Clean way to enable C and C++ standards in cmake. (#15502)
- Autogenerate build.yaml equivalent from bazel BUILD metadata (with bazel query xml). (#21929)
Python
- [Aio] Add AsyncIO support to grpcio-reflection. (#22662)
- Support SO_REUSEPORT on manylinux2010. (#22643)
- [Aio] Add wait_for_connection API for streaming calls. (#22565)
- [Aio] Accepts normal iterable of request messages. (#22580)
- [Aio] Support all sequential metadata. (#22539)
- [Aio] Initial modelling of the metadata abstraction. (#22306)
- Add Python Example Server with Reflection and Health Checking Enabled. (#22460)
- Correct the docstring and implementation of AuthMetadataPlugin. (#22471)
- [Aio] Change the default IO engine to POLLER. (#22453)
- Annotate channel context manager methods to make pytype happy. (#22405)
- [Health Checking] Make the empty service default to SERVING state. (#22369)
- [Aio] One completion queue & many-thread many-loop. (#22311)
- [Aio] Add an alternative mode for the AsyncIO Stack. (#22258)
- [gRPC Easy] Generate simple stubs code. (#22218)
- [Aio] Implement server interceptor for unary unary call. (#22032)
Ruby
- Add ruby 2.7 to mac binary packages. (#22195)