protobuf 、JSON、XML传输格式

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

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

一、protobuf是什么

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

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

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

二、性能优势

Protobuf 的二进制格式使得数据包体积比JSON3-10 倍,序列化和反序列化速度比JSON5-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/

相关推荐
鬼手点金10 小时前
Scrapy + Playwright 完整示例(JS 动态渲染网页)
开发语言·javascript·爬虫·python·scrapy·html·json
AlfredZhao11 小时前
VS Code 一键美化 JSON:不用安装插件
json
zhanghaha131421 小时前
Python进阶教程:6_JSON 数据解析 —— 新手完全指南
开发语言·python·json
云水一下1 天前
零基础玩转bWAPP靶场(四十六):XSS - Reflected (AJAX/JSON)
web安全·ajax·json·xss·bwapp·reflected
小小龙学IT1 天前
simdjson:利用 SIMD 指令实现 GB/s 级 JSON 解析的 C++ 开源库
开发语言·c++·json
天吾cc1 天前
JSON 与 cJSON 学习笔记
笔记·学习·json
大家的林语冰1 天前
👍 JS 还在进化,ES2026 正式推出,最新七大特性补全!
前端·javascript·json
秋田君1 天前
QT_JSON文件操作
开发语言·qt·json
k4m7v2pz1 天前
Rust 规则热重载实战:用 serde_json + notify 告别重启
开发语言·rust·json·规则引擎·notify·热重载
数据知道1 天前
XXE 漏洞深度实战:XML 外部实体攻击与 OOB 带外
xml·网络·安全·网络安全