protobuf 、JSON、XML传输格式

曾经流行 的JSON、XML似乎在游戏开发领域悄然退居二线,protobuf 具备更优势。

Protocol Buffers (简称 Protobuf)是由 Google 开发的一种语言无关、平台无关、可扩展的序列化数据格式。它主要用于数据通信协议和数据存储。与 XML 相比,Protobuf 更小、更快、更简单

一、protobuf是什么

Protocol Buffers 是Google开发的一种轻量级、高效的数据交换格式。

它能够将结构化数据序列化,适用于网络传输和数据存储。

与JSON和XML相比 ,protobuf生成的二进制数据更小,解析速度更快。

二、性能优势

Protobuf 的二进制格式使得数据包体积比JSON小3-10 倍,序列化和反序列化速度比JSON快5-100倍。

三、支持跨平台跨语言

Protobuf 支持多种编程语言(C++、C#、Java,JavaScript,TypeScript等),只需定义一次数据结构,即可在各个平台上使用

兼容优势,向前向后兼容,Protobuf 通过字段编号而非字段名来标识数据,新增字段不会破坏旧版程序,老版本可以忽略新字段继续运行

Protobuf 的工作流程

  1. 编写 .proto 文件:定义数据结构(message)及其属性。

  2. 使用 protoc 编译器编译 .proto 文件:生成相应语言的代码文件,如 .pb.cc 和 .pb.h 文件。

  3. 在代码中使用生成的文件:实现对数据的序列化和反序列化。

四、应用场景

protobuf并非在所有场景下都是最佳选择,对于 简单的示例或者小项目,引入protobuf需要安装环境、生成代码,反而增加了不必要的复杂度。

参考:

https://protobuf.com.cn/overview/

相关推荐
丨白色风车丨2 天前
Python中JSON与字典/列表的相互转换详解
windows·python·json
楚识科技2 天前
XML配置OCR接入实战:自定义OCR模板从字段定义到API调用全流程
xml·java·ocr
鱼宵2 天前
LangChain4j 结构化输出:让模型吐出 Java 对象,JSON 不再手写解析
java·开发语言·json·langchain4j
leisoo80973 天前
融资融券数据怎么查两融指标含义与杠杆观察方法 IG50免费开源股票数据API接口
开发语言·jvm·数据库·python·json
j7~3 天前
【C++ 标准项目】发布订阅消息队列 (篇七):项目创建与基础工具模块搭建
开发语言·c++·log4j·uuid·protobuf·helper工具·消息定义类型和交换机类型定义
深蓝电商API4 天前
protobuf逆向:从抓包乱码到还原数据结构
爬虫·protobuf
胖头鱼的鱼缸(尹海文)4 天前
胖头鱼的技术专栏-474 从能跑到能上线:PG SplitJSON 0.2.0 和 0.1.0 差在哪(20261008)
postgresql·json
?? Daisy4 天前
Claude Code 接入 GPT:settings.json 两种配置方法(2026-10)
gpt·json
小静AI工程实验室5 天前
Python 爬虫解析 JSON-LD:多块 script、@graph 与坏数据的 9 个边界
爬虫·python·json
goehou5 天前
LLM 结构化输出全解:从 Prompt 约束到 Schema 硬保证,三层实现怎么选
ai·llm·json·agent·教程·结构化输出