Protocol Buffers 35.1 发布:多语言适配与性能优化亮点多
【导语:Protocol Buffers 35.1 版本正式发布,这一 Google 开源的序列化结构化数据机制迎来了一系列更新,涵盖 Bazel 测试、C++ 功能添加以及 UPB 优化等方面,将对相关开发领域产生重要影响。】
Protocol Buffers 35.1 版本发布,Bazel 9 对 csharp、hpb、objc、php、python、rust 和 upb 进行了测试([#27598](https://github.com/protocolbuffers/protobuf/pull/27598))([4469e38](https://github.com/protocolbuffers/protobuf/commit/4469e3840bfa69ee3bd21721b402ff28076ecbab)),这意味着该协议在多种语言环境下的兼容性和稳定性得到了进一步验证和提升。
此版本打破了 protobuf 对 Bazel proto 片段的依赖,仅支持 Starlark 版本的 --proto_toolchain_for*。这虽然是 35.0 版本中的一个破坏性变更,但与 34.x 版本的行为一致([1f99c52](https://github.com/protocolbuffers/protobuf/commit/1f99c52d771b86ca11274019c9b1a10280dd6050)),有助于开发者在不同版本间保持开发的连贯性。
在 C++ 方面,向重复字符串字段添加了 cord setters([6efa174](https://github.com/protocolbuffers/protobuf/commit/6efa174ec6d455a4404b37f997daa69770ddde8f)),这一功能的增加为 C++ 开发者在处理字符串数据时提供了更多便利和灵活性。
对于 UPB(Python/PHP/Ruby C - Extension),通过切换到 XCT 段,避免了 upb 中的未定义行为,使其构造函数在编译器生成的初始化器之前运行([c35b977](https://github.com/protocolbuffers/protobuf/commit/c35b97728f4782343a37e590a3fd97c80fbadc55)),提升了代码的稳定性和可靠性。
编辑观点:Protocol Buffers 35.1 的发布带来了多方面的优化和改进,增强了其在多语言环境下的适应性和性能。这些更新将有助于开发者更高效地使用该协议进行结构化数据的序列化,推动相关领域的开发进展。
