
protocol bufferukal

gadanaaparamaaya daatta serialise cheyyaan upayogikkunna swathanthravum ooppan sozhsumaaya cross-plaattphom daatta formaattaanu protocol bafezhs (protoboof). oru nettvarkkiloode parasparam ashayavinimayam nadathunnathino daatta sambharikkunnathino ulla prograamukal vikasippikkunnathin ithu upayogapradamaanu. chila daattayude ghadana vivarikkunna oru interface vivarana bhashayum gadanaaparamaaya daattaye prathinidheekarikkunna baittukalude oru stream srishtikkunnathino paazhs cheiyunnathino aaa vivaranathil ninnu sozhs coode srishtikkunna oru prograam eee reethiyil ulppedunnu.
avalokanam.
google aantharika upayogathinaayi protocol bufferukal vikasippikkukayum oru ooppan sozhs licensinu keezhil onniladhikam bhashakalkkaayi oru coode janarettar nalkukayum cheythu (chuvade kaanuka).
protocol bafarukalkkaayulla design lakshyangal laalithyathinum prakadanatthinum oonnal nalki. prathyekichum, ithu exmlinekkaal cheruthum vegathayeriyathumaanu.
ellaatharam gadanaaparamaaya vivarangalum sambharikkunnathinum parasparam kaimarunnathinum googilil protocol bufferukal vyaapakamaayi upayogikkunnu. googilile mikkavarum ellah inter-mesheen ashayavinimayathinum upayogikkunna oru ishtaanusritha remot proseasure kooll (arpisi) samvidaanathinte adisthaanamaayi eee reethi pravartthikkunnu.
protocol bufferukal appaache thriftt (facebook, evernote upayogikkunnu), ayoon (aamason srishtichathu), allengil microsopht boond protocolukal ennivaykku samaanamaan, koodaathe gpc enna nirvachikkapetta sevanangalkkayi oru konkreett arpisi protocol staakkum vaagdaanam cheiyunnu.
dattaa structure skeemakalum ("sandeshangal" ennu vilikkunnu) sevanangalum oru proto defenision fayalil (kokvi _ 1) vivarikkukayum kokvi _ 2 upayogichu samaharikkukayum cheiyunnu. eee samahaaram eee dattaa gadanakal ayaykkunnayalkko sweekarthaavinu abhyarthikkaan kazhiyunna coode srishtikkunnu. udaaharanathinu, cocks 3, cocks 4 enniva cocks 5 ll ninnu srishtikkappedunnu. avaa oro sandeshathinum sevanathinum cocks 5 ll sii + + klaasukal nirvachikkunnu.
kaanonikamaayi, sandeshangal oru bainari vayar formattilekku serialise cheiyunnu, athu kompaakt, forwade, backward-compattible aanu, pakshe svayam vivarikkunnilla (athaayath, baahya specification illaathe feeldukalude perukal, ardham allengil poornna daatta typeukal parayaan margamilla). oru protocol buffer fayalinullil atharam oru baahya specification (schema) ulppeduthaano paraamarshikkaano nirvachikkapetta margamilla. audyogikamaayi pinthunaykkunna nadappakkalil oru eiii. ezz. sii. aii. aii serialisation formet ulppedunnu, ennaal eee formet-svayam vivarichittundenkilum-munnottum pinnotum-anuyojyatha swabhaavam nashtappedunnu, athinaal manushya editting debugging ozhikeyulla aaplikkeshanukalkku ithu nalla thiranjeduppalla.
protocol bafarukalude praadhamika lakshyam network ashayavinimayam sugamamaakkuka ennathaanu, ennaal athinte laalithyavum vegathayum protocol bafarukale daatta kendreekritha sii + + classukalkkum gadanaykkum pakaramaayi maattunnu, prathyekichu bhaviyil mattu bhaashakalumaayo sistangalumaayo paraspara pravarthanakshamatha aavashyamaayi vannekkaam.
parimithikal.
protobafukalkku orotta savisheshathayilla. kurachu megaabaittukalil kaviyatha cheria daatta bhaagangalkk ettavum anuyojyamaaya formet udan thanne oru memmariyilekku looad/ayaykkaan kazhiyum, athinaal ithu stream cheyyaavunna formaattalla. library outtu oof dhaa boxes compression nalkunnilla. object-ooriyantad allatha bhaashakalilum (udha.jii. fortran).
udaaharanam.
protocol bafarukalude oru prathyeka upayogathinulla oru schema, oro feeld thirichariyaan poornnasamkhyakal upayogichu daatta tharangale feeld naamangalumaayi bandhappeduthunnu. (protocol buffer daattayil feeld naamangalalla, samkhyakal maathrame adangiyirikkunnulloo, daattayile feeld namangal ulppedunna sistangalumaayi thaarathamyappeduthumbol kurachu bandwidth/storeju savings nalkunnu.)
// poolilin.proto
vaakyaghadana = "proto 2";
sandesham pooyint {
 aavasyamulla inta 32 x = 1;
 aavasyamulla inta 32 y = 2;
 oopshanal string label = 3;
sandesha line {
 aavashyamaaya pooyint arambham = 1;
 aavasyamulla pooyint end = 2;
 oopshanal string label = 3;
sandesham poolilin {
 aavarthichulla pooyint pooyint = 1;
 oopshanal string label = 2;
pooyint" sandesham "x", "y" ennee rund nirbandhitha daatta enangale nirvachikkunnu. label" enna dattaa inam oopshanalaanu. oro daatta inathinum oru tagg undu. thulya chinnathinu sheshamaan tagg nirvachichirikkunnathu. udaaharanathinu, "x" nuu tagg 1 undu.
pooyint upayogikkunna "line", "poolilin" sandeshangal, protocol bafarukalil composition engane pravarthikkunnuvennu kaanikkunnu. polyline oru "aavarthichulla" feeld undu, athu oru vekttar pole pravartthikkunnu.
eee schema pinneedu onno athiladhikamo prograaming bhashakal upayogikkunnathinaayi samaharikkaam. sii + +, jaava allengil paitthan ennivaykkaayi outtputtu nirmmikkaan kazhiyunna kokwish _ 2 enna compiler google nalkunnu. mattu 20-ladhikam bhaashakalkk bhasha aasrayikkunna outtputtu srishtikkunnathinu mattu srothassukalil ninnu mattu schema compilerukal labhyamaan.
udaaharanathinu, mukalilulla protocol buffer skeemayude sii + + pathipp nirmmichathinushesham, oru sii + + sozhs coode phayal, polyline.sii. pii. pii. kku sandesha vasthukkal thaazhepparayunna reethiyil upayogikkaam
// poolilin.sii. pii. pii.
line * createnvline (koonst stadit string perum) {
 //(10,20) muthal (30,40) vareyulla oru varii srishtikkuka
 line * line = puthiya line;
 line-> mutable _ staartt ()-> settu _ x (10);
 line-> mutable _ staartt ()-> settu _ vaii (20);
 line-> mutable _ end ()-> settu _ x (30);
 line-> mutable _ end ()-> settu _ vaii (40);
 varii-> settu label (peru);
 ritten line;
poolilin * createnuvopolilin () {
 //(10,10), (20,20) pooyintukalulla oru polyline srishtikkuka.
 poolilin * poolilin = puthiya poolilin;
 pooyint * pooyint 1 = polyline-> aadu _ pooyint ();
 pooyint 1-> settu _ x (10);
 pooyint 1-> settu _ vaii (10);
 pooyint * pooyint 2 = polyline-> aadu _ pooyint ();
 pooyint 2-> settu _ x (20);
 pooyint 2-> settu _ vaii (20);
 poolilin thirike nalkuka;
bhasha pinthuna.
sii + +, jaava, sii #, paitthan ennivaykkaayi protoboof 2 oru coode janarettar nalkunnu.
protoboof 3 sii + +, jaava (kuranja vibhava paristhithikalkkaayi uddeshichittulla oru bhaashaabhedamaaya javanano ulppede), paitthan, goo, rubie, objective-sii, sii #ennivaykkaayi oru coode janarettar nalkunnu. ithu 3.0.0-beta-2 muthal javascriptineyum pinthunaykkunnu.
balerina, sii, sii + +, dart, elixir, erlang, hashkell, jaavaaskript, pell, piechpi, prologue, aarr, rust, scala, swift, juuliya, niim ennivaykkum moonnaam kakshi nadappaakkalukal labhyamaan.

