protocolbuffers/protobuf
Protobuf是谷歌打造的通用数据格式,让不同编程语言的程序能互相交换数据
Protocol Buffers(简称Protobuf)是谷歌开发的数据序列化格式,能把程序里的结构化数据转换成可以存储或通过网络传输的紧凑形式。开发者只需在.proto文件里定义一次数据结构,protoc编译器就能自动生成C++、Java、Python等多种语言的对应代码。这个获得71769个star的仓库同时提供了编译器和多种语言的运行时库。
它做什么
- 定义了一套与编程语言、平台无关的数据序列化(把数据转换成可存储或传输的形式)方式
- 只需在.proto文件中定义一次数据结构,protoc编译器就能为C++、Java、Python、C#、Ruby、PHP等语言生成对应代码
- Go、JavaScript、Dart的支持放在各自独立的配套仓库中
- 使用Bazel构建系统的项目可以通过Bzlmod(需Bazel 8以上)或较旧的WORKSPACE方式引入protobuf依赖
- 项目建议锁定在正式发布版本上使用,而不是main分支的最新代码,因为后者可能随时出现不兼容的改动
为什么重要
当不同语言编写的服务器和客户端、或者不同公司的系统之间需要交换数据时,双方必须遵循同一套规则,而Protobuf正是被广泛采用的标准之一。做API、微服务或基于gRPC通信开发的工程师在实际工作中很可能会用到这套格式。
本仓库术语
- 序列化(serialization) · 把程序中的数据转换成可以保存或传输的形式的过程
- protoc · 读取.proto文件并为各编程语言生成对应代码的protobuf编译器
- .proto文件 · 用于定义待交换数据结构(字段、类型等)的protobuf专用配置文件
- Bazel / Bzlmod · 谷歌开发的构建系统及其依赖管理方式
- 运行时(runtime) · 生成的代码实际运行时所依赖的库
仓库简介(英文)
Protocol Buffers - Google's data interchange format
在 GitHub 打开热门仓库
- vorssaint/vorssaint-utils一个免费菜单栏应用,顶替十几款付费Mac工具
- Alishahryar1/free-claude-code一个本地代理,把编程AI助手接到49家免费或低价模型服务商,不再只能用一家付费服务
- freestylefly/awesome-gpt-image-2把532个GPT-Image2案例拆解成可复用模板的提示词工程库
- block/buzz一个让人类和AI智能体在同一空间里聊天、写代码、做审查的开源协作平台
- NousResearch/hermes-agentNous Research推出的Hermes是一款越用越聪明的AI智能体
- virgiliojr94/book-to-skill把技术类书籍PDF变成AI编程助手随时可查阅的技能包
- VoltAgent/awesome-agent-skills把上千份让AI编程助手秒变专家的操作手册集中放在一个地方
- anthropics/claude-plugins-community一个把大家做的Claude插件集中起来供安装的仓库