protobuf是一種高效的資料格式,平台無關、語言無關、可擴充套件,可用於 rpc 系統和持續資料儲存系統。
protobuf
是protocol buffer
的簡稱,它是google公司於2023年開源的一種高效的平台無關、語言無關、可擴充套件的資料格式,目前protobuf作為介面規範的描述語言,可以作為go語言rpc介面的基礎工具。
protobuf
是乙個與語言無關的乙個資料協議,所以我們需要先編寫idl檔案然後借助專用工具生成指定語言的**,從而實現資料的序列化與反序列化過程。
大致開發流程如下: 1. idl編寫 2. 生成指定語言的** 3. 序列化和反序列化
protobuf3語法指南
安裝生成go語言**的工具
go get -u github.com/golang/protobuf/protoc-gen-go
在protobuf_demo/address
目錄下新建乙個名為person.proto
的檔案具體內容如下:
在// 指定使用protobuf版本
// 此處使用v3版本
syntax = "proto3";
// 包名,通過protoc生成go檔案
package address;
// 性別型別
// 列舉型別第乙個字段必須為0
enum gendertype
// 人
message person
// 聯絡簿
message contactbook
protobuf_demo/address
目錄下執行以下命令。
address $ protoc --go_out=. ./person.proto
此時在當前目錄下會生成乙個person.pb.go
檔案,我們的go語言**裡就是使用這個檔案。 在protobuf_demo/main.go
檔案中:
// 序列化
data, err := proto.
marshal
(&p1)
if err !=
nil ioutil.
writefile
("./proto.dat"
, data,
0644
) data2, err := ioutil.
readfile
("./proto.dat"
)if err !=
nilvar p2 address.person
proto.
unmarshal
(data2,
&p2)
fmt.
println
(p2)
}
PyThon第三方庫
本文 自 戀花蝶的部落格 今天公司停電,沒上班。跑上來更新個部落格,跟大家分享一下我常用的幾個第三方 python 庫。python 語言之所以能夠如此流行,除了本身內建許多程式庫來保障快速開發之外,目不睱接的第三方庫也是一大主因。結合我目前的工作 網遊開發 我常用的幾個第三方庫如下 wxpytho...
lua第三方庫
luacom 支援com呼叫 luadoc 支援lua 的文件生成 luaexpat 支援xml解析 luafilesystem 檔案系統訪問 lualogging 基於log4j的日誌 luaprofiler 效能測試工具 luasocket 網路庫,支援http,ftp,smtp,mime,ur...
常用第三方庫
1 通過cocoapods安裝 專案名稱 專案資訊 afnetworking 網路請求元件 fmdb 本地資料庫元件 sdwebimage 多個縮圖快取元件 uickeychainstore 存放使用者賬號密碼元件 reachability 監測網路狀態 datetools 友好化時間 mbprog...