gRPC 1.23.0 发布了。gRPC 是 Google 开源的高性能、通用 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架。gRPC 基于 HTTP/2 标准设计,带来诸如双向流、流控、头部压缩、单 TCP 连接上的多复用请求等特性。这些特性使得其在移动设备上表现更好,更省电且节省空间占用。
主要更新内容如下:
Core
C++
- 频道闲置 (#19634)
- 线程池 (#19544)
- 升级 min CMake 至 3.5.1 以匹配 Google 基准测试 (#19467)
- 从 dep.proto. 迁移到 dep[ProtoInfo] provider (#19420)
C#
- 将 ChannelExtensions(拦截器支持)移动到 Grpc.Core.Api(对于 v1.23.x 分支) (#19853)
- 重构 ChannelCredentials 并移到 Grpc.Core.Api (#19712)
- C# 将主要版本提升为 2.x (#19796)
- 添加 ChannelBase,更改 ClientBase 构造函数参数 (#19599)
- 删除 System.Interactive.Async 依赖项 (#19059)
- 不要将 shutdownRef 计数用于同步完成队列 (#19629)
- C# - 从取消注册中删除 allocation 和 boxing (#19610)
- csharp:删除 Timespec 上的双框 (#19525)
- C#:添加 System.Memory 依赖项并在内部对所有目标框架使用 Span<> (#19569)
- csharp 在 UTF8 编码/解码期间删除 byte[] 分配 (#19511)
- csharp:删除 AuthContext 的 Lazy 用法 (#19533)
- csharp 避免 HandleNewServerRpc=>HandleCallAsync 中的 capture-context (#19526)
- 确保 Grpc 元数据包包含 Grpc.Core.targets (#19449)
Objective-C
PHP
- PHP:修复 channel::constructor() 中缺少的 addref (#19737)
Python
- 在迭代之前检查 call.trailing_metadata() (#19708)
- 为 Python 发布过程添加健全性检查 (#19635)
- 对信号接收和信号处理程序执行之间的时间间隔实施有限限制 (#19481)
- Python 压缩示例 (#19421)
Ruby
- 对于绝对路径,不要 require_relative (#19585)
- 放弃对 2.3 以下版本 ruby 的支持 (#19304)
更新说明及下载地址