我是靠谱客的博主 忧虑摩托,最近开发中收集的这篇文章主要介绍golang使用protobuf简易教程golang使用protobuf简易教程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

golang使用protobuf简易教程

google公司发布的一套开源编码规则,基于二进制流的序列化传输,可以转换成多种编程语言,几乎涵盖了市面上所有的主流编程语言,当然也包括Go

1、安装protobuf

  1. 安装下载protoc,很多种安装方法,下载地址https://github.com/google/protobuf/releases
  2. 安装下载proto的go插件,命令是go get github.com/golang/protobuf/protoc-gen-go,也可以自己手动下载安装(如果使用go get则会自动生成protoc-gen-go的可执行文件)
  3. 将protoc-gen-go可执行文件路径加到PATH环境变量中,如果是go get安装是会在GOBIN路径下生成protoc-gen-go,执行export PATH=$PATH:$GOBIN(原因在于, protoc-gen-go可执行文件需要被protoc调用)
  4. 安装goprotobuf库(注意,protoc-gen-go只是一个插件,goprotobuf的其他功能比如marshal、unmarshal等功能还需要由protobuf库提供)go get github.com/golang/protobuf/proto
  5. 写example.proto文件以及.go文件测试。由于proto生成go文件的命令是protoc --go_out=./ example.proto

PS:

1.如果你是直接go get了gin、beego这种,一般就会顺便给你安装protobuf以及protoc-gen-go了。

2.如果你有protoc-gen-go代码,放到对应目录下后($GOPATH/src/github.com/golang/protobuf/),make install也可以手动安装protoc-gen-go

二、使用protobuf

1.example.proto示例文件

(具体语法请自行搜索)

syntax = "proto2"; 
//example.proto
package example;

// LD
message LD
{
    required uint32 ip = 1;         // LD的IP
}

// 集群
message Set
{
    required uint32 id                                     = 1;     // SET的id
    required string name                                   = 2;     // SET名字
    repeated LD ld_list                                    = 3;     // LD列表
}

注意required是必须要求的字段,optional是可选字段,同时注意, id=1, 后面的数字主要是保证其顺序与唯一性。

编译命令

protoc --go_out=./ example.proto

会生成文件example.pb.go

生成的代码如下:

// Code generated by protoc-gen-go. DO NOT EDIT.
// source: example.proto

/*
Package example is a generated protocol buffer package.

It is generated from these files:
    example.proto

It has these top-level messages:
    LD
    Set
*/
package example

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf

最后

以上就是忧虑摩托为你收集整理的golang使用protobuf简易教程golang使用protobuf简易教程的全部内容,希望文章能够帮你解决golang使用protobuf简易教程golang使用protobuf简易教程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(136)

评论列表共有 0 条评论

立即
投稿
返回
顶部