protobuf的簡單使用

2022-02-10 02:47:33 字數 2612 閱讀 9422

作業系統 : centos7.3.1611_x64

gcc版本 :4.8.5

go 版本 : go1.8.3 linux/amd64

python 版本 : 2.7.5

libprotoc : 2.5.0

protobuf是google開發一種資料描述語言,能夠將結構化資料序列化,可用於資料儲存、通訊協議等方面。

首頁: 

文件: docs/overview

安裝protobuf:

yum

install protobuf protobuf-compiler protobuf-c-devel protobuf-devel

寫proto檔案(addr.book.proto):

package addr;

message book

寫檔案操作(writer.cpp):

讀檔案操作(reader.cpp):

makefile檔案:

cc = g++cflags = -g -o2 -wall

src_dir=.

dst_dir=libs

all:

make

genproto

make

writer

make

reader

genproto:

mkdir -p $(dst_dir)

protoc -i=$(src_dir) --cpp_out=$(dst_dir) addr.book.proto

writer:

$(cc) -o writer writer.cpp $(dst_dir)/addr.book.pb.cc -i$(dst_dir) -lprotobuf

reader:

$(cc) -o reader reader.cpp $(dst_dir)/addr.book.pb.cc -i$(dst_dir) -lprotobuf

clean:

rm -rf $(dst_dir)

rm -f writer reader log

rm -f *.o

執行效果:

[root@localhost proto1]# ./writer

[root@localhost proto1]# ./reader

101book1

[root@localhost proto1]#

安裝goprotobuf:

yum

install golang-googlecode-goprotobuf.x86_64

將proto檔案轉換為go**(genpbcode.sh):

#! /bin/sh

mkdir -p src/addr

protoc -i=. --go_out=src/addr addr.book.proto

修改protobuf路徑:

"修改為:

新增path(臨時使用時可以這麼操作):

export gopath=$gopath:$pwd

寫檔案操作(write.go):

讀檔案操作(reader.go):

執行效果:

[root@localhost proto3]# go run write

.go[root@localhost proto3]# go run read.go

id:11 str:"

testmsg11

"[root@localhost proto3]#

需要安裝protobuf包:

pip install protobuf

將proto檔案轉換為python**(genpbcode.sh):

#! /bin/sh

protoc -i=. --python_out=. addr.book.proto

touch addr/__init__.py

寫檔案操作(write.py):

讀檔案操作(reader.py):

執行效果:

(py27env) [root@localhost proto2]# ./genpbcode.sh

(py27env) [root@localhost proto2]# python

write

.py(py27env) [root@localhost proto2]# python reader.py

id: 1

str:

"testmsg1

"(py27env) [root@localhost proto2]#

好,就這些了,希望對你有幫助。

的簡單使用.rst

歡迎補充

protobuf簡單使用

一 介紹 首先,protobuf是乙個開源專案,而且是後台很硬的開源專案。網上現有的大部分 至少80 開源專案,要麼是某人單幹 要麼是幾個閒雜人等合夥搞。而protobuf則不然,它是 鼎鼎大名的google公司開發出來,並且在google內部久經考驗的乙個東東。由此可見,它的作者絕非一般閒雜人等可...

protobuf安裝及其簡單使用

protocol buffers 是一種語言中立,平台無關,可擴充套件的序列化資料的格式,可用於通訊協議,資料儲存等。protocol buffers 在序列化資料方面,它是靈活的,高效的。相比於 xml 來說,protocol buffers更加小巧,更加快速,更加簡單。一旦定義了要處理的資料的資...

protobuf的使用 三

rpc方法的序列化和反序列化 rpc標籤 在protobuf中定義描述rpc方法的型別 service 在proto檔案中增加rpc服務的選項 表示生成service服務類和rpc方法描述,預設是不生成的 option cc generic services true message loginre...