Linux下载、安装protobuf-v35.1(附安装包protoc-35.1-linux-x86_64.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 开发的语言中立、平台中立、可扩展的结构化数据序列化机制,于 2008 年 7 月 7 日正式开源。作为 Google 内部自 2001 年起使用的核心技术,protobuf 已成为云原生和微服务生态的基础设施级组件,被 Kubernetes、gRPC、Terraform 等重量级项目广泛采用。

截至 2026 年中,protobuf 在 GitHub 上拥有超过 71,300 颗 Star、16,200+ Fork,全球排名约第 233 位,累计有 1,200 多位贡献者参与开发。项目由 Google 主导维护,保持高频更新。

Protobuf 的核心价值在于以高效、紧凑的二进制格式进行结构化数据的序列化和反序列化,相比 JSON 和 XML 体积更小、速度更快、Schema 约束更强。其核心功能包括:

  • 跨语言支持:原生支持 C++、Java、Python、Go、JavaScript、C#、Ruby、PHP、Dart、Objective-C 等十余种编程语言
  • Schema 驱动:通过 .proto 文件定义数据结构,自动生成各语言的数据访问类(data access class)
  • 向前/向后兼容:字段编号机制确保新旧版本数据可互相解析,无需同步升级
  • Protocol Compiler(protoc):将 .proto 文件编译为各目标语言的代码,是生态的核心编译器工具
  • 多版本共存:支持 proto2、proto3 以及更灵活的 Editions(2023 年引入)三种语法规范

2. v35.1 版本亮点

该版本汇集了多位贡献者的提交。

Bazel 构建系统

  • 为 csharp、hpb、objc、php、python、rust 和 upb 新增 Bazel 9 测试
  • 解除 protobuf 对 Bazel proto fragment 的依赖,仅遵循 Starlark 版本的 --proto_toolchain_for* 参数。这是自 35.0 以来的破坏性变更,但与 34.x 的行为保持一致

C++

  • 为 repeated string 字段新增 cord setter 方法

UPB(Python/PHP/Ruby C 扩展)

  • 通过切换到 XCT section 避免 upb 中的未定义行为(UB),使构造函数在编译器生成的初始化器之前运行

3. 获取安装包

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

适用于 Linux x86_64(amd64)。

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

4. 快速开始

解压整合包根目录中的 protoc-35.1-linux-x86_64.zip,将解压出的 bin/protoc 放入系统 PATH 路径中即可使用。

常用命令

bash 复制代码
# 查看 protoc 版本
protoc --version

# 编译 .proto 文件(生成 C++ 代码)
protoc --cpp_out=. your_file.proto

# 编译 .proto 文件(生成 Python 代码)
protoc --python_out=. your_file.proto

# 编译 .proto 文件(生成 Java 代码)
protoc --java_out=. your_file.proto

# 指定 proto 文件搜索路径
protoc -I./protos --cpp_out=./out ./protos/your_file.proto
相关推荐
小周学学学8 分钟前
vmware-horizon第一章:horizon服务器安装
运维·服务器·vmware
小雪崩26 分钟前
嵌入式学习 day25:哈希表及排序与查找
linux·c语言·数据结构·学习·排序算法
gsls2008081 小时前
Penpot Docker 部署与 MCP 服务配置文档
运维·docker·容器·原型·penpot
九硕智慧建筑一体化厂家1 小时前
直流智能照明|全场景节能升级!打造安全低碳的智慧建筑光环境
运维·笔记·安全·智慧城市
蓝速科技1 小时前
蓝速科技丨数智人终端选型指南:后台运维如何决定长期运营成本
运维·科技
奇树谦1 小时前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
hi_ro_a2 小时前
Linux基础开发工具详解
linux·运维·服务器
嵌入式阿蔡2 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
风静如云2 小时前
Openssl:Win11(Chrome)安装客户端证书
服务器
風穆3 小时前
OopsVPS:多云 VPS 比价平台的十大核心优势
大数据·服务器·云服务器·oopsvps