Repolode
protocolbuffers

protocolbuffers/protobuf

Google 推出的跨语言、跨平台结构化数据序列化格式,附带 protoc 编译器和多语言运行时。

Star
72,151
Fork
16,358
未关闭 Issue
371
最近提交
15小时前

这是什么?

Protocol Buffers(简称 protobuf)是一种与编程语言和平台无关的结构化数据序列化机制。开发者用 .proto 文件定义数据结构,再通过 protoc 编译器生成目标语言的读写代码。

仓库包含用 C++ 编写的 protoc 编译器、C++ 运行时以及随项目发布的标准 .proto 文件。Java、Python、Objective-C、C#、Ruby、PHP 等语言的运行时位于各自子目录中,Go 和 JavaScript 等则在独立仓库维护。发布页提供预编译的 protoc 二进制包,非 C++ 用户可直接下载使用;同时支持 Bazel、Bzlmod 和 WORKSPACE 等构建方式。

该项目常被用作 RPC 系统的数据交换格式,也可替代文本格式来存储紧凑的结构化记录。

核心功能

  • 01使用与语言无关的 .proto 文件定义消息结构。
  • 02protoc 可为多种目标语言生成序列化代码。
  • 03提供 C++、Java、Python、Go、C#、Ruby 等语言的运行时。
  • 04在 GitHub 发布页提供预编译的 protoc 二进制文件。
  • 05支持 Bazel、Bzlmod 和旧版 WORKSPACE 构建方式。

适用场景

  • 为使用不同语言编写的服务定义共享的数据契约。
  • 为 gRPC 等风格的 API 序列化请求和响应消息。
  • 存储紧凑的结构化记录,替代体积较大或解析较慢的文本格式。

快速上手

  1. 1

    从 GitHub 发布页下载预编译的 protoc 二进制文件

  2. 2

    按照开发者指南中的入门教程操作

使用前须知

  • 元数据中的许可证显示为 NOASSERTION,因此许可条款不明确。
  • 主分支的最新提交可能因不兼容变更而损坏,稳定构建请固定到某个发布版本。
  • C++ 用户或需要修改代码的人必须从源码构建 protoc,工作量更大。

收录于专题

标签

#serialization#rpc#protocol-compiler#code-generation#cross-language#data-format#marshalling#protobuf#protobuf-runtime#protoc

常见问题

protobuf 是什么?
Google 推出的跨语言、跨平台结构化数据序列化格式,附带 protoc 编译器和多语言运行时。 Protocol Buffers(简称 protobuf)是一种与编程语言和平台无关的结构化数据序列化机制。开发者用 .proto 文件定义数据结构,再通过 protoc 编译器生成目标语言的读写代码。
protobuf 可以免费使用吗?用的什么许可证?
protobuf 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
protobuf 还在维护吗?
活跃维护中。protobuf 最近一次提交是在 2026年11月6日。
protobuf 适合用来做什么?
为使用不同语言编写的服务定义共享的数据契约。 为 gRPC 等风格的 API 序列化请求和响应消息。 存储紧凑的结构化记录,替代体积较大或解析较慢的文本格式。
protobuf 怎么安装和运行?
从 GitHub 发布页下载预编译的 protoc 二进制文件 按照开发者指南中的入门教程操作
在哪里获取 protobuf?
源代码和安装说明在 GitHub 上:https://github.com/protocolbuffers/protobuf

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目