【ProtoBuf】(篇一)初识 ProtoBuf

我们先用一张思维导图进行大致了解:


⼀、初识 ProtoBuf

1. 序列化概念

a.序列化和反序列化

  • 序列化:把对象转换为字节序列的过程 称为对象的序列化。
  • 反序列化:把字节序列恢复为对象的过程 称为对象的反序列化。

b.什么情况下需要序列化

  • 存储数据:当你想把的内存中的对象状态保存到⼀个⽂件中或者存到数据库中时。
  • ⽹络传输:⽹络直接传输数据,但是⽆法直接传输对象,所以要在传输前序列化,传输完成后反序列化成对象。例如我们之前学习过 socket 编程中发送与接收数据。

c.序列化实现格式

xml、json、 protobuf


2. ProtoBuf 是什么

官方原文

Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data ‒ think XML, but smaller, faster, and simpler. You define how you want your data to be structured once, then you can use special generated source code to easily write and read your structured data to and from a variety of data streams and using a variety of languages.
中文翻译 Protocol Buffers 是 Google 的一种语言无关、平台无关、可扩展的结构化数据序列化方案,可用于通信协议、数据存储等场景。 它和 XML 同类,是灵活高效、自动化的结构化数据序列化机制,但比 XML 更小、更快、更简单。 你只需要定义一次数据结构,就能借助自动生成的源码,用多种语言在各类数据流里读写结构化数据;还可以更新数据结构,不会破坏基于旧结构编译、已经上线运行的程序。

总结 ProtoBuf(Protocol Buffer)是结构化数据序列化方案,核心特点:

  • 语言无关、平台无关:支持 C++、Java、Python 等多语言、多平台
  • 高效:相比 XML,体积更小、速度更快、用法更简单
  • 扩展性、兼容性强:升级数据结构,不影响旧版本程序

3. ProtoBuf 的使⽤特点

ProtoBuf 使用步骤

  1. 编写 .proto 文件:定义结构对象(message)以及里面的属性字段。
  2. 使用 protoc 编译器编译 .proto:自动生成配套接口代码,输出头文件与源文件。
  3. 在业务代码中引入生成的头文件:调用生成的接口,完成字段读写、message 对象的序列化、反序列化。

使用特点:

ProtoBuf 使用依赖编译生成的头文件和源文件。依靠代码自动生成机制,开发者不需要手写繁琐的协议解析代码。

相关推荐
丰锋ff2 小时前
用户管理命令
linux·运维·服务器
BcoreOS2 小时前
‌新手必看:Debian 13 虚拟机 SSH 连不上?我是怎么一步步调试成功的
服务器
迪菲赫尔曼2 小时前
【基础篇 08】让VS Code连接服务器:界面在本地,文件保存到远端
运维·服务器·vscode·yolo·论文·教程·ultralyt
东方佑3 小时前
去魅:工具调用、Agent 调用、A2A、MCP、Harness 到底都是什么
服务器·网络·数据库
H.莓飛3 小时前
【数据结构】排序总结与规模实测
linux·服务器·开发语言·数据结构·visual studio·1024程序员节
xianyuCcCcCCCcc3 小时前
Kubernetes :健康检查、认证授权与可视化面板
运维·云原生·kubernetes·dashboard
Zenova EdgeOS3 小时前
Linux 日志实战:用 journalctl 精准检索与治理工业边缘日志
linux·运维·chrome
Dory_Youth3 小时前
电脑的搜索功能不能用,一搜就黑屏闪退
运维·笔记
Dxy12393102164 小时前
Linux 压缩解压相关命令介绍
linux·运维·服务器