This is the 1.15.0 release (glider) 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
- Document SSL portability and performance considerations. See https://github.com/grpc/grpc/blob/master/doc/ssl-performance.md .
- Simplify call arena size growth. (#16396)
- Make gRPC buildable with AIX and Solaris (no official support). (#15926)
- PF: Check connectivity state before watching. (#16306)
- Added system roots feature to load roots from OS trust store. (#16083)
- Fix c-ares compilation under windows (but doesn't yet enable windows DNS queries), and then enables address sorting on Windows. (#16163)
- Fix re-resolution in pick first. (#16076)
- Allow error strings in final_info to propagate to filters on call destruction. (#16104)
- Add resolver executor . (#16010)
- Data race fix for lockfree_event. (#16053)
- Channelz: Expose new Core API. (#16022)
C++
- cmake: disable assembly optimizations only when necessary. (#16415)
- C++ sync server: Return status
RESOURCE_EXHAUSTED
if no thread quota available. (#16356) - Use correct target name for gflags-config.cmake. (#16343)
- Make should generate pkg-config file for gpr as well. (#15295)
- Restrict the number of threads in C++ sync server. (#16217)
- Allow reset of connection backoff. (#16225)
C#
- Add experimental support for Xamarin.Android and Xamarin.iOS, added Helloworld example for Xamarin. See https://github.com/grpc/grpc/tree/master/src/csharp/experimental.
- Add experimental support for Unity Android and iOS. See https://github.com/grpc/grpc/tree/master/src/csharp/experimental.
- Add server reflection tutorial. See https://github.com/grpc/grpc/blob/master/doc/csharp/server_reflection.md.
- Avoid deadlock while cancelling a call. (#16440)
- Subchannel sharing for secure channels now works as expected. (#16438)
- Allow dot in metadata keys. (#16444)
- Avoid shutdown crash on iOS. (#16308)
- Add script for creating a C# package for Unity. (#16208)
- Add Xamarin example. (#16194)
- Cleanup and update C# examples. (#16144)
- Grpc.Core: add support for x86 android emulator. (#16121)
- Xamarin iOS: Add libgrpc_csharp_ext.a for iOS into Grpc.Core nuget. (#16109)
- Xamarin support improvements . (#16099)
- Mark native callbacks with
MonoPInvokeCallback
. (#16094) - Xamarin.Android: add support. (#15969)
Objective-C
- Make BoringSSL symbols private to gRPC in Obj-C so there is no conflict when linking with OpenSSL. (#16358)
- Use environment variable to enable CFStream. (#16261)
- Surface error_string to ObjC users. (#16271)
- Fix
GRPCCall
refcounting issue. (#16213)
Python
- Added experimental support for client-side fork on Linux and Mac by setting the environment variable
GRPC_ENABLE_FORK_SUPPORT=1
. Applications may fork with active RPCs, as long as no user threads are currently invoking gRPC library methods. In-progress RPCs continue in the parent process, and the child process may use gRPC by creating new channels. (#16264) - Improve PyPy compatibility. (#16364)
- Fix segmentation fault caused by
channel.close()
when used with connectivity-state subscriptions. (#16296) - Add server reflection guide for Python. See https://github.com/grpc/grpc/blob/master/doc/python/server_reflection.md.
- Add Cython functionality to directly wrap
grpc_arg
. (#16192, #16197)