macOS下载、安装protobuf-v35.1(附安装包protoc-35.1-osx-universal_binary.zip)

文章目录

    • [1. Protocol Buffers (protobuf) 简介](#1. Protocol Buffers (protobuf) 简介)
    • [2. v35.1 版本亮点](#2. v35.1 版本亮点)
    • [3. 获取安装包](#3. 获取安装包)
    • [4. 快速开始](#4. 快速开始)

1. Protocol Buffers (protobuf) 简介

Protocol Buffers(简称 protobuf)是 Google 自 2001 年起内部研发、并于 2008 年 7 月 7 日正式开源的结构化数据序列化框架。作为 Google 内部服务间通信的核心技术,protobuf 以其高效、紧凑的二进制编码格式,成为 gRPC 框架的默认数据交换格式,被广泛应用于微服务架构、移动应用和数据存储等场景。

截至 2026 年,protobuf 在 GitHub 上已获得超过 64,000 Star,社区持续活跃,由 Google 旗下的 protocolbuffers 组织维护。2024 年推出的 Edition 2024 机制进一步提升了跨语言开发的灵活性,成为替代 JSON/XML 进行高性能数据交换的主流方案之一。

protobuf 的核心组成包括两个部分:(1)Protocol Compiler(protoc),一个用 C++ 编写的命令行编译器,负责将 .proto 文件编译为各目标语言的代码;(2)各编程语言的 protobuf 运行时库(runtime library),负责在实际使用中对消息进行序列化和反序列化。

protobuf 的主要特点:

  • 语言无关、平台无关 :一份 .proto 定义可生成 C++、Java、Python、Go、C#、Ruby、PHP、Dart、JavaScript、Objective-C 等十余种语言的代码
  • 高效紧凑:二进制序列化,体积远小于 JSON/XML,解析速度更快
  • 强类型与向后兼容:通过字段编号实现向前/向后兼容,适合长期维护的 API
  • 深度集成 gRPC:作为 gRPC 的默认序列化协议,支撑 Google 及无数企业的微服务体系
  • 成熟稳定:历经 20+ 年大规模生产环境验证,文档完善,生态丰富

2. v35.1 版本亮点

该版本聚焦于 Bazel 构建系统的改进、C++ API 增强以及 UPB(Python/PHP/Ruby C 扩展)的稳定性修复。

Bazel 构建系统

  • 新增 csharp、hpb、objc、php、python、rust 和 upb 的 Bazel 9 测试支持
  • 移除 protobuf 对 Bazel proto fragment 的依赖,仅遵循 --proto_toolchain_for* 的 Starlark 版本。注意:这是相对于 35.0 的破坏性变更(breaking change),但行为与 34.x 保持一致

C++

  • 为 repeated string 字段新增 cord setter 支持,提升特定场景下的性能表现

UPB(Python/PHP/Ruby C 扩展)

  • 通过切换到 XCT 区段来避免 UPB 中的未定义行为(undefined behavior),确保构造函数在编译器生成的初始化器之前运行,增强运行时稳定性

3. 获取安装包

如果访问 GitHub 不便,安装包及中文文档:https://hanshuixin.org/go/224K(内含 protoc-35.1-osx-universal_binary.zip、README 中英对照、发布说明中英对照和 LICENSE)。

text 复制代码
macOS安装protobuf-v35.1(protoc-35.1-osx-universal_binary).zip
├── protoc-35.1-osx-universal_binary.zip
├── macOS安装protobuf-v35.1(protoc-35.1-osx-universal_binary).pdf
├── README/
│   ├── README.md
│   └── README-中文版.md
├── 发布说明/
│   ├── RELEASE-NOTES.md
│   └── RELEASE-NOTES-中文版.md
└── LICENSE

4. 快速开始

解压整合包根目录中的 protoc-35.1-osx-universal_binary.zip,将解压得到的 protoc 可执行文件所在目录添加到系统 PATH 环境变量中,即可在终端使用:

基本用法

bash 复制代码
# 编译 .proto 文件生成 C++ 代码
protoc --proto_path=IMPORT_PATH --cpp_out=DST_DIR path/to/file.proto

# 编译 .proto 文件生成 Python 代码
protoc --proto_path=IMPORT_PATH --python_out=DST_DIR path/to/file.proto

# 编译 .proto 文件生成 Java 代码
protoc --proto_path=IMPORT_PATH --java_out=DST_DIR path/to/file.proto

# 查看 protoc 版本
protoc --version

若需要其他编程语言的运行时支持(如 Go、JavaScript、Dart 等),请分别安装对应语言的 protobuf 库。详情可参考各语言目录下的安装说明或 protobuf 官方文档。

相关推荐
Frag0ut1 天前
Chrome安全隐私设置指南:5个原生功能筑牢浏览器数字防线
chrome·google·谷歌浏览器·权限管理·隐私保护·安全设置·安全浏览
应用市场1 天前
把旧 Pixel 变成相册备份中转站(上):Mac 到安卓的照片传输工具设计——流式上传、sha256 校验、adb forward 与 Bonjour
android·macos·adb·kotlin·swift
Peter(阿斯拉)2 天前
[macOS Tahoe 26]_[使用SmartSVN访问库路径报错的问题]
macos·svn·tahoe·smartsvn·macos26
andyweike2 天前
iOS语法原理
macos·objective-c·cocoa
传奇开心果编程3 天前
【SwiftUI提高练中学】第8课 网络层架构:拦截器、重试、缓存与离线优先
学习·macos·ui·ios·swiftui
xUxIAOrUIII3 天前
日常笔记-1005-1
linux·笔记·python·macos
传奇开心果编程3 天前
【Compose Multiplatform 跨端开发学与练】第9课 测试与调试
android·学习·macos·ios·kotlin·web·composer
supabc1233 天前
Celium:连接 Windows、Mac、Linux 与 Android,让远程访问和设备管理更简单
android·linux·windows·macos·远程访问·网络管理·celium
牛奔3 天前
Mac 精准安装指定 macOS 版本完整教程(升级 + 降级通用)
macos
海盗12343 天前
AI 新闻日报 2026-10-05:三周重构 30 万行 / macOS 给智能体加权限锁 / 具身订单结构被摆上台面
人工智能·macos·重构·机器人·人工智能aigc