ProtoBuf认识与Windows下的安装

news2024/9/22 22:27:11

protobuf简介

Protobuf Protocol Buffers 的简称,它是 Google 公司开发的一种数据描述语言,是一种轻便高效的结 构化数据存储格式,可以用于结构化数据,或者说序列化。它很适合做数据存储 RPC 数据交换格 。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。他是一 种灵活,高效,自动化的机制,用于序列化结构化数据,对比于 XML JSON ,他更小,更快、更简 单。总之他是微服务中需要使用的东西。
Protobuf 刚开源时的定位类似于 XML JSON 等数据描述语言,通过附带工具生成代码并实现将结构化 数据序列化的功能。这里我们更关注的是Protobuf 作为接口规范的描述语言,可以作为设计安全的跨语 言RPC 接口的基础 工具。
需要了解两点
1. protobuf 是类似与 json 一样的数据描述语言(数据格式)
2. protobuf 非常适合于 RPC 数据交换格式

protobuf的优势和劣势:

优势:
1 :序列化后体积相比 Json XML 很小,适合网络传输
2 :支持跨平台多语言
3 :消息格式升级和兼容性很好
4 :序列化反序列化速度很快,快于 Json 的处理速度
劣势:
1 :应用不够广 ( 相比 xml json)
2 :二进制格式导致可读性差
3 :缺乏自描述

protobuf的安装 

1 、安装 protobuf
GitHub - protocolbuffers/protobuf: Protocol Buffers - Google's data interchange format
点击latest,然后找到win-64的压缩包
下载后解压,添加到环境变量
我的安装目录:D:\protoc-25.3-win64\bin
环境变量打开:我的电脑->右键属性-》高级系统设置-》环境变量-》系统变量-》找到path-》编辑-》保存即可
win+r,打开cmd,输入 
protoc --version

显示版本即可

protobufgo语言插件protoc-gen-go插件

go install github.com/golang/protobuf/protoc-gen-go@latest

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1463841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【springblade】springblade(bladeX) 数据权限失效原因分析

文章目录 数据权限接口权限 前言:最近博主在按照bladeX官方文档 配置数据权限 结果发现失效了,网上搜了一下没找到合适的答案,本着求人不如求己的精神,自己调试了一下发现了问题所在,也大致看了一下bladeX的权限逻辑。…

STM32G030C8T6:定时器1ms中断(以64MHz外部晶振为例)

本专栏记录STM32开发各个功能的详细过程,方便自己后续查看,当然也供正在入门STM32单片机的兄弟们参考; 本小节的目标是,系统主频64 MHZ,采用高速外部晶振,通过定时器3 每秒中断控制 PB9 引脚输出高低电平,从…

CPEOS:国家遥感数据与应用服务平台

文章目录 Main高分数据线上展厅遥感卫星技术成果支撑单位 Main 主页:https://www.cpeos.org.cn/home/ 高分数据 线上展厅 遥感卫星 技术成果 支撑单位

十九、图像的放缩和插值

项目功能实现&#xff1a;对一张图像进行放大和缩小操作 按照之前的博文结构来&#xff0c;这里就不在赘述了 一、头文件 resizing.h #pragma once#include<opencv2/opencv.hpp>using namespace cv;class RESIZING { public:void resizing(Mat& image); };#pragma…

Spring 类型转换、数值绑定与验证(一)— DataBinder

DataBinder 是Spring用于数据绑定、类型转换及验证的类。使用场景有&#xff1a;1&#xff09;xml配置文件定义bean,Spring 内部使用DataBinder 来完成属性的绑定&#xff1b;2&#xff09;Web请求参数绑定&#xff0c;在Spring MVC 中&#xff0c;Controller的方法参数通常会自…

【Git】Git命令的学习与总结

本文实践于 Learn Git Branching 这个有趣的 Git 学习网站。在该网站&#xff0c;可以使用 show command 命令展示所有可用命令。你也可以直接访问网站的sandbox&#xff0c;自由发挥。 一、本地篇 基础篇 git commit git commit将暂存区&#xff08;staging area&#xff…

leetcode:1925. 统计平方和三元组的数目(python3解法)

难度&#xff1a;简单 一个 平方和三元组 (a,b,c) 指的是满足 a2 b2 c2 的 整数 三元组 a&#xff0c;b 和 c 。 给你一个整数 n &#xff0c;请你返回满足 1 < a, b, c < n 的 平方和三元组 的数目。 示例 1&#xff1a; 输入&#xff1a;n 5 输出&#xff1a;2 解释…

企业如何高效地使用数字工厂管理系统

随着信息技术的飞速发展&#xff0c;数字工厂管理系统已经成为现代企业提升生产效率、优化资源配置、增强竞争力的关键工具。本文将探讨企业如何高效地使用数字工厂管理系统&#xff0c;以实现生产流程的优化、成本控制的精细化和市场响应的敏捷化。 一、数字工厂管理系统的概念…

Autosar-Mcal配置详解-GPT

3.3.1添加GPT模块 方法与添加Dio相似&#xff0c;可参加Dio模块添加方法。 3.3.2 创建、配置GPT通道 1)根据需求创建GPT通道&#xff08;即创建几个定时器&#xff09; 本例中创建了3个定时器通道&#xff1a;1ms&#xff0c;100us&#xff0c;OsTimer。 2)配置GPT通道 配置T…

Android LruCache源码分析

文章目录 Android LruCache源码分析概述LruCache和LinkedHashMap关系源码分析写入数据读取数据删除缓存 Android LruCache源码分析 概述 LruCache&#xff08;Least Recently Used Cache&#xff0c;最近最少使用缓存&#xff09;是 Android 中的一种缓存机制。 根据数据的使…

从大厂裸辞后成为自由职业者,一年后我怎么样了?

深耕技术领域7年&#xff0c;前前后后也做过不少副业&#xff0c;最近我一直在思考什么副业才是对自己有价值的&#xff0c;可持续的&#xff0c;甚至是可增长的。 22年我所在团队的一个项目解散了&#xff0c;领导问我想拿钱走还是转岗&#xff0c;想想自己也在这个公司干了5…

2024-02-21 学习笔记(DETR)

自动多模态检测验证效果不佳&#xff08;过检太多&#xff09;后&#xff0c;节后开始尝试DETR路线。 基本梳理了下DETR发展和验证的脉络&#xff0c;先进行相应指定场景的效果验证。 关于DETR系列的介绍&#xff0c;B站上比较多&#xff0c;迪哥的都讲的比较细。 推荐大佬的…

【VSCode编写JavaScript】

VSCode编写JavaScript ■ 下载安装VSCode■ VSCode统一配置■ 格式化工具■ Tab size &#xff08;代码缩进 2个字符&#xff09;![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7b79c59636f147c8b08a0fff37886e0a.png) ■ VSCode安装JS插件■ VSCode新建JS工程代码…

突发!AI独角兽「竹间智能」被曝停工停产6个月

大家好我是二狗。 今天早上起来刷朋友圈&#xff0c;看到一张截图——AI创企竹间智能&#xff0c;宣称因为公司所处的经营环境艰难&#xff0c;部分部门和岗位将从即日起停工停产6个月。 图源&#xff1a;&#xff08;企服科学&#xff09; 下面是文字版&#xff1a; 由于公司…

Pregnostic®–PE IIp ELISA,用于测量人源ESM-1水平

Pregnostic PE Pregnostic是由IQ Products公司开发的重点关注女性健康的产品线。其中的Pregnostic -PE项目&#xff0c;旨在开发有助于筛查孕期先兆子痫风险的产品&#xff0c;可用于区分早发性和晚发性先兆子痫。 ESM-1 内皮细胞特异性分子&#xff08;ESM-1&#xff09;&am…

渗透测试之文件上传绕过

通过是否抓到包来验证是前端验证还是后端验证&#xff0c;前端验证是不发数据包的&#xff0c;而后端验证是会发数据包的&#xff0c;所以可以通过抓包工具进行判断。再通过不同的验证方式&#xff0c;选择绕过方式。 前端验证&#xff1a;通过禁掉js代码&#xff0c;使验证文…

c++:蓝桥杯的基础算法2(构造,模拟)+练习巩固

目录 构造 构造的基础概念&#xff1a; 模拟 练习1&#xff1a;扫雷 练习2&#xff1a;灌溉 练习3&#xff1a;回文日期 构造 构造的基础概念&#xff1a; 构造算法是一种用于解决特定问题的算法设计方法。在C语言中&#xff0c;构造算法通常涉及到创建一个函数或类来实…

springboot207基于springboot的实习管理系统

实习管理系统的设计与实现 摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日常生活越来越离不开计算机和互联网技术。首先&#xff0c;根据收集到的用户需求分析&#xff0c;对设计系统有一个初步的认识与了解&#xff0c;确定实习管理系统的总体功…

一个服务器实现本机服务互联网化

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 一个服务器实现本机服务互联网化 前言痛点关于中微子代理实战演练搭建服务端搭建客户端服务端配置代理实现 前言 在数字世界的网络战场上&#xff0c;中微子代理就像是一支潜伏在黑暗中的数字特工队&…

Sora:OpenAI引领AI视频新时代

Sora - 探索AI视频模型的无限可能 随着人工智能技术的飞速发展&#xff0c;AI视频模型已成为科技领域的新热点。而在这个浪潮中&#xff0c;OpenAI推出的首个AI视频模型Sora&#xff0c;以其卓越的性能和前瞻性的技术&#xff0c;引领着AI视频领域的创新发展。让我们将一起探讨…