This is the 1.11.0 release (gorgeous) 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.
Core
- Add core underpinnings for TLS session ticket support (#14483)
- Experimental support for configurable retries (use at your own risk) (#10684)
- Fail calls with
wait_for_ready=falseon transient resolver failure (#14733) - Fix a call stack ref flake (#14681)
c-aresDNS resolver sorts resolved addresses per RFC 6724 (#13290)- Use
socklen_tinstead ofsize_tfor address length (fixes use case for some big endian systems) (#14464) - Initial part of channel tracing implementation (#13883, #14746, #14751)
- Avoid crashes on environments with hot-plugged CPUs (#14712)
- When building from source,
Makefilenow checks for minimumprotobufversion 3.5.0 instead 3.0.0 (#14821) - gRPC Core public header no longer includes
inttypes.h(#14676) - CMake improvements:
- Enable
SO_REUSEPORTin IPv6-only environments as well (#14748)
C#
- Improvements in experimental support for Unity - added useful resources and improved support for loading
grpc_csharp_exton Unity (#14576, #14605) - Further prevent name collisions by using only fully qualified type names in C# code generator (#14524)
- Fix C# connectivity watcher shutdown race (#14776)
Objective-C
- Support for Keep-Alive (#14781)
- Experimental C++ podspec now supports Apple framework (#14480)
- Allow discarding generated implementation (leaving only protocol) with macro (#14490)
- Better handling of network error (#14554)
PHP
- Add missing
-O2compilation flag for pecl (#14768) - Update the reserved variable list to check in PHP code generator to match protobuf 3.5.0 (#13580)
Python
- Progress towards full Beta API elimination (Beta API is and has been unsupported and will go away completely):
- Remove
_face_interface_testtests for the Beta API (#14702)
- Remove
- Remove Python background poller thread (#14448)
- Note there is a small change in behavior. Before, clients would detect disconnected channels immediately.
- Initial
geventcompatibility (EXPERIMENTAL) (#14561) - Release the GIL when calling
grpc_call_start_batchto improve performance under multithreaded scenarios. (#14801)
Ruby
- Correct handling of underscores in package names by Protocol Buffers code generator for Ruby (#13634)
- Source code and locally compiled (not cross-compiled) shared libraries (
grpc_c.sofiles) are removed from the linux binary packages. This includes the packages targeting thex86_64-linuxandx86-linuxplatforms (#14634) - Bug fix for a use-after-free related to access to a garbage collected object (#14809)
- Get rid of the
-Wno-formatargument to compilation of the ruby extension - Documentation improvements (#14535)
- Don’t raise
GRPC::Core::CallErrorsfor failed reads or writes of bidi streaming calls (#14922) - Fix a race condition in an interrupt handler that could cause an assertion failure (#14953)