Protocol Buffers(简称 Protobuf)是 Google 开发的一种**语言中立、平台中立、可扩展的结构化数据序列化格式*
Protocol Buffers简称 Protobuf是 Google 开发的一种语言中立、平台中立、可扩展的结构化数据序列化格式主要用于通信协议、数据存储等场景。它不是 JSON 或 XML 那样的文本格式而是二进制序列化格式具有体积小、解析快、强类型约束和向后/向前兼容性好等特点。核心特点✅高效紧凑二进制编码如 Varint、Zigzag 编码通常比 JSON 小 3–10 倍解析速度高数倍✅强契约性通过.proto文件定义数据结构schema生成多语言C/Java/Python/Go/Rust 等绑定代码✅向后/向前兼容支持字段编号、optional/required/repeatedv3 中required已移除、oneof、map等机制保障演进安全✅无运行时反射依赖部分语言如 C/Rust 可零反射高性能解析基本使用流程编写.proto文件例如person.protosyntax proto3; message Person { int32 id 1; string name 2; repeated string email 3; }使用protoc编译器生成目标语言代码protoc--python_out. person.proto# 生成 person_pb2.py在代码中序列化/反序列化importperson_pb2 pperson_pb2.Person()p.id123p.nameAliceserializedp.SerializeToString()# bytesp2person_pb2.Person()p2.ParseFromString(serialized)# 反序列化⚠️ 注意Protobuf v3 默认所有字段为optional不支持requiredv2 已弃用且未设置字段在序列化时被忽略即“默认值不传输”有助于节省空间。Protobuf 的字段编号tag必须唯一是因为它是二进制序列化格式中标识字段的唯一键直接参与 wire format 编码如tag (field_number 3) | wire_type用于在反序列化时准确识别每个字段的类型和位置。该编号不是“顺序索引”而是协议层面的永久标识符一旦发布即不可变更。✅为什么必须唯一Protobuf 使用基于 tag 的稀疏解析二进制流中只包含已设置字段的tag, value对无固定结构偏移解析器仅靠 tag 判断“这是哪个字段”若两个字段使用相同 tag解析器无法区分必然导致数据覆盖、类型错配或解析崩溃如将 string 当作 int 解析.proto编译器在生成代码时也以 tag 为键构建字段映射表如 Python 中_fields_by_number重复 tag 会导致编译失败protoc直接报错Field X has same number as field Y。⚠️重复 tag 的后果禁止编译阶段protoc拒绝编译报错终止若绕过校验如手动构造非法二进制运行时解析结果不可预测后出现的同 tag 字段会覆盖前一个取决于解析实现造成数据丢失或类型混淆如string覆盖int32导致Invalid wire type异常。跳号如用 1、3、5 而非 1、2、3的影响✅完全允许且推荐为未来字段预留空间如预留 2、4、6避免升级时重排编号✅ 不影响性能或大小tag 编码为 Varint小数字1–15仅占 1 字节跳号不增加体积⚠️ 但不建议过大跳跃如从 1 直接到 1000虽合法但可能误导维护者且部分工具如某些调试器/IDE 插件依赖连续编号做可视化易引发可读性问题 关键原则tag 一旦分配永远不可复用即使字段已废弃否则破坏兼容性。补充Protobuf 规范明确要求 tag ∈ [1, 2²⁹−1]即 1–536,870,911且 19000–19999 为 Google 内部保留用户应避开。

相关新闻

GimpPs终极指南:如何3步将GIMP界面秒变Photoshop专业风格

GimpPs终极指南:如何3步将GIMP界面秒变Photoshop专业风格

GimpPs终极指南:如何3步将GIMP界面秒变Photoshop专业风格 【免费下载链接】GimpPs Gimp Theme to be more photoshop like 项目地址: https://gitcode.com/gh_mirrors/gi/GimpPs 如果你是一名Photoshop用户想要转向免费开源的GIMP,或者你已经被GI…

2026/7/26 14:02:14 阅读更多 →
`grpcio` 是 Google 开发的 gRPC 框架的 Python 实现,是一个高性能、开源的通用 RPC(远程过程调用)框架

`grpcio` 是 Google 开发的 gRPC 框架的 Python 实现,是一个高性能、开源的通用 RPC(远程过程调用)框架

grpcio 是 Google 开发的 gRPC 框架的 Python 实现,是一个高性能、开源的通用 RPC(远程过程调用)框架,基于 HTTP/2 协议和 Protocol Buffers(protobuf)序列化格式。其核心优势包括: ✅ 高性能&a…

2026/7/26 21:23:23 阅读更多 →
终极iOS自由:Downr1n开源降级工具完整指南

终极iOS自由:Downr1n开源降级工具完整指南

终极iOS自由:Downr1n开源降级工具完整指南 【免费下载链接】downr1n downgrade tethered checkm8 idevices ios 14, 15. 项目地址: https://gitcode.com/gh_mirrors/do/downr1n 你的iPhone是否因为系统升级而变得卡顿?是否怀念某个旧版本iOS的流畅…

2026/7/26 23:21:02 阅读更多 →

最新新闻

JoyAI-VL-Interaction:从零部署实时视觉语言交互大模型

JoyAI-VL-Interaction:从零部署实时视觉语言交互大模型

在传统多模态大模型应用中,用户通常需要先上传一张图片或视频,然后通过文字提问来获取模型的响应。这种“一问一答”的模式在静态图像分析场景下表现良好,但在处理实时视频流、监控预警、直播解说等动态场景时存在明显局限性——用户必须不断手动截取画面并输入问题,无法实…

2026/7/28 4:43:25 阅读更多 →
League Akari:5分钟掌握终极英雄联盟自动化工具箱

League Akari:5分钟掌握终极英雄联盟自动化工具箱

League Akari:5分钟掌握终极英雄联盟自动化工具箱 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否厌倦了在英雄联盟游戏中手…

2026/7/28 4:43:25 阅读更多 →
霞鹜文楷:一款让中文阅读体验焕然一新的免费开源字体

霞鹜文楷:一款让中文阅读体验焕然一新的免费开源字体

霞鹜文楷:一款让中文阅读体验焕然一新的免费开源字体 【免费下载链接】LxgwWenKai An unprofessional open-source Chinese font derived from Fontworks Klee One. 一款非专业的开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。 项目地址: htt…

2026/7/28 4:43:25 阅读更多 →
3个思维跃迁:如何用OB_Template从笔记新手到知识管理高手

3个思维跃迁:如何用OB_Template从笔记新手到知识管理高手

3个思维跃迁:如何用OB_Template从笔记新手到知识管理高手 【免费下载链接】OB_Template OB_Templates is a Obsidian reference for note templates focused on new users of the application using only core plugins. 项目地址: https://gitcode.com/gh_mirrors…

2026/7/28 4:43:25 阅读更多 →
Python的format(:d)一用就起飞,数字格式化秒杀所有小白

Python的format(:d)一用就起飞,数字格式化秒杀所有小白

()函数, 是在中, 被用于格式化字符串的函数, 它允许我们, 经由使用, 大括号{}作为占位符, 而插入变量或值, 并且在运行时, 将其替换为实际的值。下面是一个简单的示例,演示如何使用()函数:name "Alice" age 30 messag…

2026/7/28 4:43:25 阅读更多 →
从新年愿望到可执行计划:基于SMART原则的目标管理系统构建

从新年愿望到可执行计划:基于SMART原则的目标管理系统构建

1. 从“许愿”到“实现”:为什么我们需要一个仪式感的新年规划又到一年新旧交替时,朋友圈、社交媒体上,“新年愿望”的清单又开始刷屏了。减肥、读书、升职、旅行、学一门新技能……这些词每年都似曾相识。但不知道你有没有发现,我…

2026/7/28 4:42:24 阅读更多 →

日新闻

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:43 阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:43 阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:43 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻