簡介
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個字元...