随笔分类 - Protobuf
Protocol Buffer学习笔记
摘要:在 Protocol Buffers (protobuf) 中,可以使用特定的选项来指定生成的 JSON 标签。通过在消息定义中使用 `[(json_name)]` 选项,可以控制生成的 JSON 字段名称。这样可以确保 Protocol Buffers 和 JSON 之间的互操作性。 下面是一个示
阅读全文
摘要:原文在[这里](https://protobuf.dev/reference/go/faq/#namespace-conflict)。 ## 什么是Protocol Buffer命名空间冲突? 所有链接到Go二进制文件的Protocol Buffer声明都被插入到一个全局注册表中。 每个Protoc
阅读全文
摘要:在protobuf中导入当前目录中的`.proto`文件时,可以使用相对路径。相对路径是相对于当前`.proto`文件所在的目录来引用其他`.proto`文件。 假设有以下目录结构: ``` my_project/ |-- proto/ | |-- person.proto |-- main.pro
阅读全文
摘要:之前的文章中已经展示过如何在 C++ 中使用protobuf,本文将简单示范protobuf在 Golang 和 Python 中的使用。 Talk is cheap. Show you my code. 首先是Python: 接下来是Golang: 本文采用 "知识共享署名 非商业性使用 禁止演绎
阅读全文
摘要:| 包名 | 说明 | | : | : | | "google::protobuf" | Protocol Buffer运行时库核心组件。 | | "google::protobuf::io" | I/O操作辅助类。 | | "google::protobuf::util" | 工具类。 | | "
阅读全文
摘要:Arena分配是仅C++有的功能,在使用Protocol Buffer时,它可以帮助你优化你的内存使用,提高性能。在 文件中启用Arena分配会在生成的C++代码中添加处理Arena分配的额外代码。关于Arena分配API的细节,详见 "Arena Allocation Guide" 。 服务 如果
阅读全文
摘要:本章节实际上是介绍Protocol Buffer编译器从给定的protocol定义中生成的C++代码。所有proto2和proto3生成的代码不同之处都会高亮标出 需要注意的是这些不同之处只是生成的代码中的不同,而不是消息类/接口(同一版本的编译器生成的是一样的)的不同。开始之前,你应该先了解 "p
阅读全文
摘要:本文描述处理Protocol Buffer常用到的一些设计模式。你也可以给 "Protocol Buffers discussion group" 发送设计或使用问题。 流式多条消息 如果你想将多个消息写入到单个文件或流中,你需要记录一条消息的结束及另一个的开始。Protocol Buffer wi
阅读全文
摘要:本文介绍protocol buffer消息二进制传输格式。在应用程序中使用protocol buffer时,你并不需要了解这些,但它对你了解protocol buffer格式如何影响你的编码消息的大小很有用。 简单消息 我们从一个非常简单的消息定义开始: 在程序中,你可以创建一个 ,然后设置 为15
阅读全文
摘要:本文介绍 文件的编码风格。遵循下面的惯例,可以使你的protocol buffer消息定义和它们对应的类连贯且已读。 注意,protocol buffer风格随时间变化一直在进步,所以可能你会在写成的 文件看到不同的惯例或风格。在你修改这些文件时 请考虑已有风格 。 连贯是关键 。然而在创建新的 文
阅读全文
摘要:本教程提供protocol buffer在C++程序中的基础用法。通过创建一个简单的示例程序,向你展示如何: 在 中定义消息格式 使用protocol buffer编译器 使用C++ protocol buffer API读写消息 这并不是protocol buffer在C++中使用的完整指南。更多
阅读全文
摘要:这篇指南讲述如何使用Protocol Buffers来结构化你的Protocol Buffer数据,包括 文件语法以及如何从 文件生成你的访问类型。本文主要涵盖了 proto3 的语法, proto2 的语法参见 "Proto2 Language Guide" 。 这是一篇参考教程 本文中诸多功能的
阅读全文