在go語言中安裝與使用protobuf的方法詳解

2022-09-24 18:24:11 字數 1530 閱讀 9814

簡介

protobuf是google開發出來的乙個語言無關、平台無關的資料序列化工具,在rpc或tcp通訊等很多場景都可以使用。通俗來講,如果客戶端和服務端使用的是不同的語言,那麼在服務端定義乙個資料結構,通過protobuf轉化為位元組流,再傳送到客戶端解碼,就可以得到對應的資料結構。這就是protobuf神奇的地方。並且,它的通訊效率極高,「一條訊息資料,用protobuf序列化後的大小是json的10分之一,xml格式的20分之一,是二進位制序列化的10分之一」。

安裝編譯安裝protobuf的編譯器protoc

wget

tar zxvf protobuf-2.6.1.tar.gz

cd protobuf-2.6.1./configure

make

make install

執行protoc  -h檢視安裝是否成功

安裝外掛程式 protoc-gen-go,它是乙個go程式,編譯它之後將可執行檔案執行路徑寫入環境變數

獲取proto包

在go中使用

protobuf的使用方法是將資料結構寫入到.proto檔案中,使用protoc編譯器編譯(間接使用了外掛程式)得到乙個新的go包,裡面包含go中可以使用的資料結構和一些輔助方法。

編寫test.proto檔案

package example;

enum foo ;

message test

}編譯:

執行protoc --go_out=. *.proto生成 test.pb.go 檔案

將test.pb.go檔案放入example資料夾(對應上面package)中,作為example包

}一些對應關係

www.cppcns.com

這些只是一些特性,想要仔細研究可以檢視github上的wiki:

總結本文標題: 在go語言中安裝與使用protobuf的方法詳解

本文位址:

在Go語言中使用JSON

將乙個物件編碼成json資料,接受乙個inte ce 物件,返回byte和error func marshal v inte ce byte,error marshal函式將會遞迴遍歷整個物件,依次按成員型別對這個物件進行編碼,型別轉換規則如下 bool型別轉換為json的boolean 整數,浮點...

在Go語言中使用氣泡排序?

氣泡排序實現 go語言中陣列的定義 1.用var關鍵字定義,var arr 5 int,需要指定元素個數 2.用 定義,arr 3 int,需要賦初值 用 定義,由編譯器計算元素個數,arr int 氣泡排序 第1個元素和第2個元素比較,若a j a j 1 那麼交換位置 0.思想 n個元素,依次處...

在 Go 語言中處理 Unicode

如果 go 通常是指在公園散步,用go語言處理unicode碼可以描述為不小心走進了雷區,比如,如果我們要獲取從前端頁面的一句簡單字串 hello,世界 的長度.會得到什麼結果?1fmt.println len hello,世界 2 13 等下,剛才發生了什麼?長度難道不該是9麼?其他額外的4個字元...