GRPC 1.15.0 已发布,GRPC 是一个高性能、开源、通用的 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架。 GRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。
该版本包含优化、改进和 bug 修复,亮点包括:
Core
- Document SSL portability and performance considerations. 详情
- 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. 详情
- Add experimental support for Unity Android and iOS. 详情
- Add server reflection tutorial. 详情
- 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 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)
- Segmentation fault caused by
channel.close()
when used with connectivity-state subscriptions. (#16296) - Add server reflection guide for Python. 详情
- Refresh pb2 files in examples/python/multiplex. (#16253)
- Adding python version environmental markers in the new style. (#16235)
- Add a matching
_unwrap_grpc_arg
. (#16197) - Add Cython functionality to directly wrap
grpc_arg
. (#16192)
下载地址:
转自 https://www.oschina.net/news/99906/grpc-1-15-0-released