Golang里面使用protobuf(proto3)

原文:https://developers.google.com/protocol-buffers/docs/gotutorial

1.proto3文档:https://developers.google.com/protocol-buffers/docs/proto3
go api文档:https://godoc.org/github.com/golang/protobuf/proto

2.一个简单的proto文件,addressbook.proto,这个例子有如c语言的helloworld
https://github.com/google/protobuf/blob/master/examples/addressbook.proto
本文用的这个例子

3.执行指令:
go get -u github.com/golang/protobuf/protoc-gen-go
会下载protoc-gen-go.exe到$GOPATH/bin下,把它拷贝到$PATH,它只是一个插件,还不是真正的编译器

4.下载protoc,地址https://github.com/google/protobuf/releases,里面可以找到win/linux/mac的二进制文件,
我们需要protoc-3.1.0-win32.zip,把里面的protoc.exe(其它文件不需要)拷贝到PATH下面

5.生成c++和golang的代码
protoc --go_out . addressbook.proto
protoc --cpp_out . addressbook.proto
protoc --csharp_out . addressbook.proto
protoc --java_out . addressbook.proto
protoc --js_out . addressbook.proto
protoc --objc_out . addressbook.proto
protoc --ruby_out . addressbook.proto

6.测试
代码上传到github了(test pass):
https://github.com/wjx0912/GoLangUtils/tree/master/project_protobuf3

时间: 2024-10-09 08:11:38

Golang里面使用protobuf(proto3)的相关文章

golang——win10环境protobuf的使用

1.protobuf配置 (1)https://github.com/protocolbuffers/protobuf/releases (2)选择适合的版本:protoc-3.8.0-win64.zip (3)解压后将文件 protoc.exe 所在目录添加到环境变量 Path (4)检查protobuf版本,CMD命令窗口执行:protoc --version 2.proto文件处理 (1)获取相关库 go get -u github.com/golang/protobuf/protoc-g

在 Golang 中使用 Protobuf

安装 goprotobuf 1.从 https://github.com/google/protobuf/releases 获取 Protobuf 编译器 protoc(可下载到 Windows 下的二进制版本 wget https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz tar zxvf protobuf-2.6.1.tar.gz cd protobuf-2.6.1 ./config

go语言初体验

背景 目前后台业务系统的大部分接口都是以同步阻塞式的方式工作,资源利用率低,单机qps有限.因为go语言原生支持协程,能够同时满足开发效率和程序性能,于是决定引入go语言进行改造. 主要是分享以下三点心得: C/C++库的封装 map内部成员赋值,以及protobuf协议的支持 网络I/O超时处理 C/C++库的封装 环境搭建,语法这些就不赘述了.阅读 A tour of go 可以很好的认识go语言. 引入go语言,碰到的第一个问题是如何复用已有的经过了长期线上检验的C/C++基础库,所幸go

GoCN每日新闻(2019-10-21)

GoCN每日新闻(2019-10-21) 1. 使用 Golang, RabbitMQ 和 Protobuf 构建高效的微服务 https://medium.com/rahasak/reactive-microservices-with-golang-rabbitmq-and-protobuf-af025f4ec27 2. Golang 中的比较函数对比 — 最好自己实现  https://medium.com/@ktrilaksono/comparing-simple-comparison-f

golang 使用 protobuf 的教程

1.下载protobuf的编译器protoc 地址: https://github.com/google/protobuf/releases window:    下载: protoc-3.3.0-win32.zip    解压,把bin目录下的protoc.exe复制到GOPATH/bin下,GOPATH/bin加入环境变量.    当然也可放在其他目录,需加入环境变量,能让系统找到protoc.exelinux:    下载:protoc-3.3.0-linux-x86_64.zip 或 p

golang Protobuf学习

protobuf是一种高效的数据传输格式(Google's data interchange format),且与语言无关,protobuf和json是基于http服务中最常见的两种数据格式.今天来学习基于golang的protobuf相关内容. google protocol buffer: https://developers.google.com/protocol-buffers/golang 官方提供的protobuf支持插件:https://github.com/golang/prot

Protobuf 语言指南(proto3)

Protobuf 语言指南(proto3) Protocol Buffer是Google的语言中立的,平台中立的,可扩展机制的,用于序列化结构化数据 - 对比XML,但更小,更快,更简单.您可以定义数据的结构化,然后可以使用特殊生成的源代码轻松地在各种数据流中使用各种语言编写和读取结构化数据. 定义消息类型 先来看一个非常简单的例子.假设你想定义一个"搜索请求"的消息格式,每一个请求含有一个查询字符串.你感兴趣的查询结果所在的页数,以及每一页多少条查询结果.可以采用如下的方式来定义消息

Golang版protobuf编译

官方网址: https://developers.google.com/protocol-buffers/ (需要FQ) 代码仓库: https://github.com/google/protobuf  (C++) https://github.com/golang/protobuf  (Golang) https://developers.google.com/protocol-buffers/docs/gotutorial (英文版教程) 本文以下部分按照英文版教程操作(windows  

golang protobuf SetExtension

对golang protobuf 的扩展字段赋值时候一直提示proto: bad extension value type clkUrl:="z.cn" proto.SetExtension(seatbid, rtb.E_Clkurl, clkUrl) 查看源码后发现,对扩展字段赋值的时候会对第二个参数进行反射获取类型,判断第三个参数的类型和第二个是否匹配 , func SetExtension(pb Message, extension *ExtensionDesc, value i