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=false
on transient resolver failure (#14733) - Fix a call stack ref flake (#14681)
c-ares
DNS resolver sorts resolved addresses per RFC 6724 (#13290)- Use
socklen_t
instead ofsize_t
for 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,
Makefile
now checks for minimumprotobuf
version 3.5.0 instead 3.0.0 (#14821) - gRPC Core public header no longer includes
inttypes.h
(#14676) - CMake improvements:
- Enable
SO_REUSEPORT
in IPv6-only environments as well (#14748)
C#
- Improvements in experimental support for Unity - added useful resources and improved support for loading
grpc_csharp_ext
on 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
-O2
compilation 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_test
tests 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
gevent
compatibility (EXPERIMENTAL) (#14561) - Release the GIL when calling
grpc_call_start_batch
to 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.so
files) are removed from the linux binary packages. This includes the packages targeting thex86_64-linux
andx86-linux
platforms (#14634) - Bug fix for a use-after-free related to access to a garbage collected object (#14809)
- Get rid of the
-Wno-format
argument to compilation of the ruby extension - Documentation improvements (#14535)
- Don’t raise
GRPC::Core::CallErrors
for failed reads or writes of bidi streaming calls (#14922) - Fix a race condition in an interrupt handler that could cause an assertion failure (#14953)