发布日期: 2025-09-15
版本号: v1.75.0

这是 gRPC Core 的 1.75.0 版本,包含一系列改进、优化与错误修复。核心库方面,更新了安全验证机制(SPIFFE),将 c-ares 库版本升级至 1.34.5,并修复了导致连接尝试中断的 bug。C++ 模块实现了 OpenTelemetry 重试指标。Objective-C 修复了 state 属性的数据竞争问题。Python 模块的 grpcio 现已依赖 typing-extensions~=4.13,将 musllinux 轮子从 1_1 版本升级至 1_2,并修复了 grpc.aio 中的多个类型提示问题。Ruby 模块则新增了对凭证对象的标记以及对 linux-gnu 和 linux-musl 平台的 rubygems 支持。

更新内容 (中文)

这是gRPC Core的1.75.0版本(Gemini)。

有关gRPC文档,请访问 grpc.io。有关历史版本,请参阅 版本发布列表

本次发布包含改进、优化和错误修复,以下为重点内容。

核心

  • [安全] 集成Spiffe验证机制。(#40515
  • [Python][Typeguard] 第三部分 - 在测试中为AIO技术栈添加Typeguard。(#40217
  • [c-ares] 将版本更新至1.34.5。(#39508
  • [pick_first] 修复导致连接尝试停止的错误。(#40162

C++

  • [OTel C++] 实现重试指标。(#39195

Objective-C

  • 通过为 state 属性添加使用 @synchronized 锁定机制的自定义getter,修复数据竞争问题。(#40146

Python

  • gRPC Python (grpcio) 现在依赖 typing-extensions~=4.13。(#40137)
  • 将 musllinux 轮子包从 musllinux_1_1 更新至 musllinux_1_2。(#40317)
    • 移除 musllinux_1_1 是因为它将在2024年11月达到生命周期终点。
    • musllinux 平台标签参考:PEP 656
  • grpc.aio 类型提示修复。(#40215, #40217)
    • 元数据类型验证:修复元数据处理以支持所有序列类型(而不仅是元组),防止运行时错误。增强元数据类型验证:使用 isinstance(metadata, Sequence) 替代 isinstance(metadata, tuple)
    • 序列化参数:更改为 Optional[SerializingFunction] 以更准确地表示类型。
    • 修复公共API中的错误:ClientCallDetails.method 原被声明为 str 类型,但始终以 bytes 类型调用,详见 InterceptedUnaryUnaryCall
  • 修复了grpio在所有非Mac Apple设备内部构建中安装失败的问题(#40325)。(#40347)

Ruby

  • Ruby: 在通道中标记凭证对象。(#40394
  • [Ruby] 为 linux-gnu 和 linux-musl 平台添加 rubygems 支持。(#39549

更新内容 (原始)

This is release 1.75.0 (gemini) of gRPC Core.

For gRPC documentation, see grpc.io. For previous releases, see Releases.

This release contains refinements, improvements, and bug fixes, with highlights listed below.

Core

  • [Security] Cherry Pick Spiffe Verification. (#40515)
  • [Python][Typeguard] Part 3 - Add Typeguard to AIO stack in tests. (#40217)
  • [c-ares] update version to 1.34.5. (#39508)
  • [pick_first] fix bug that caused us to stop attempting to connect. (#40162)

C++

  • [OTel C++] Implement retry metrics. (#39195)

Objective-C

  • Fix data race by adding custom getter for state property with @synchronized locking. (#40146)

Python

  • gRPC Python (grpcio) now depends on typing-extensions~=4.13. (#40137)
  • Update musllinux wheels from musllinux_1_1 to musllinux_1_2. (#40317)
    • Dropping musllinux_1_1 because it reached EOL in November 2024
    • Reference on musllinux platform tags: PEP 656
  • grpc.aio typehint fixes. (#40215, #40217)
    • Metadata type validation: Fixed metadata handling to support all sequence types (not just tuples), preventing runtime errors. Enhanced metadata type validation: isinstance(metadata, Sequence) instead of isinstance(metadata, tuple)
    • Serializer parameters: Changed to Optional[SerializingFunction] for more accurate type representation
    • Fixing the error in public API: ClientCallDetails.method was declared as str but always called with bytes, see InterceptedUnaryUnaryCall.
  • Fixes issue #40325 with grpcio failing to install on all non-Mac Apple devices internal builds. (#40347)

Ruby

  • Ruby: Mark credential object in channel. (#40394)
  • [Ruby] Add rubygems support for linux-gnu and linux-musl platforms. (#39549)

下载链接