這篇文章給大家分享的是有關(guān)Protobuf API有什么用的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、長(zhǎng)治網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
Protocol Buffer(簡(jiǎn)稱(chēng)Protobuf) 是Google出品的性能優(yōu)異、跨語(yǔ)言、跨平臺(tái)的序列化庫(kù)。你可以把它想像成是 XML 或 JSON 格式,但是更小、更快,而且更簡(jiǎn)潔。
proto1
,一直以來(lái)在Google的內(nèi)部使用,其中也不斷的演化,根據(jù)使用者的需求也添加很多新的功能,一些內(nèi)部庫(kù)依賴(lài)它。幾乎每個(gè)Google的開(kāi)發(fā)者都會(huì)使用到它。Google開(kāi)始開(kāi)源它的內(nèi)部項(xiàng)目時(shí),因?yàn)橐蕾?lài)的關(guān)系,所以他們決定首先把Protobuf開(kāi)源出去。proto1在演化的過(guò)程中有些混亂,所以Protobuf的開(kāi)發(fā)者重寫(xiě)了Protobuf的實(shí)現(xiàn),保留了proto1的大部分設(shè)計(jì),以及proto1的很多的想法。但是開(kāi)源的proto2不依賴(lài)任何的Google的庫(kù),代碼也相當(dāng)?shù)那逦?008年7月7日,Protobuf開(kāi)始公布出來(lái)。
Protobuf公布出來(lái)也得到了大家的廣泛的關(guān)注, 逐步地也得到了大家的認(rèn)可,很多項(xiàng)目也采用Protobuf進(jìn)行消息的通訊,還有基于Protobuf的微服務(wù)框架GRPC。在使用的過(guò)程中,大家也提出了很多的意見(jiàn)和建議,Protobuf也在演化,于2016年推出了Proto3。Proto3簡(jiǎn)化了proto2的開(kāi)發(fā),提高了開(kāi)發(fā)的效能,但是也帶來(lái)了版本不兼容的問(wèn)題。
目前Protobuf的穩(wěn)定版本是3.9.2,于2019年9月23日發(fā)布。由于很多公司很早的就采用了Protobuf,所以很多項(xiàng)目還在使用proto2協(xié)議,目前是proto2和proto3同時(shí)在使用的狀態(tài)。
新特性:
google.golang.org/protobuf/encoding/protojson 使用規(guī)范的 JSON 映射將 protocol buffer 消息與 JSON 相互轉(zhuǎn)換,并解決了舊 jsonpb package 難以解決的許多問(wèn)題,而這些問(wèn)題不會(huì)對(duì)現(xiàn)有用戶(hù)造成問(wèn)題。
google.golang.org/protobuf/types/dynamicpb 為 protocol buffer 類(lèi)型在運(yùn)行時(shí)派生的消息提供了 proto.Message 的實(shí)現(xiàn)。
google.golang.org/protobuf/testing/protocmp 提供了將 protocol buffer 消息與 github.com/google/cmp 進(jìn)行比較的功能。
google.golang.org/protobuf/compiler/protogen 提供了對(duì)編寫(xiě)協(xié)議編譯器插件的支持。
感謝各位的閱讀!關(guān)于“Protobuf API有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!