rotobuf [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md). You can also use your own binary.

To generate the code, you also need to set the include path properly.

    protoc -I=. -I=$GOPATH/src -I=$GOPATH/src/github.com/gogo/protobuf/protobuf --{binary}_out=. myproto.proto

To use proto files from "google/protobuf" you need to add additional args to protoc.

    protoc -I=. -I=$GOPATH/src -I=$GOPATH/src/github.com/gogo/protobuf/protobuf --{binary}_out=\
    Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,\
    Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\
    Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types,\
    Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\
    Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:. \
    myproto.proto

Note that in the protoc command, {binary} does not contain the initial prefix of "protoc-gen".

### Most Speed and most customization

Customizing the fields of the messages to be the fields that you actually want to use removes the need to copy between the structs you use and structs you use to serialize.
gogoprotobuf also offers more serialization formats and generation of tests and even more methods.

Please visit the [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md) page for more documentation.

Install protoc-gen-gogo:

    go get github.com/gogo/protobuf/proto
    go get github.com/gogo/protobuf/jsonpb
    go get github.com/gogo/protobuf/protoc-gen-gogo
    go get github.com/gogo/protobuf/gogoproto

## GRPC

It works the same as golang/protobuf, simply specify the plugin.
Here is an example using gofast:

    prot
rotobuf [ extensions](https://github.com / gogo / protobuf / blob / master / extensions.md). You can also use your own binary. 

 To render the code, you besides need to set the include way properly. 

     protoc -I=. -I=$GOPATH / src -I=$GOPATH / src / github.com / gogo / protobuf / protobuf --{binary}_out=. myproto.proto 

 To practice proto files from " google / protobuf " you need to total extra args to protoc. 

     protoc -I=. -I=$GOPATH / src -I=$GOPATH / src / github.com / gogo / protobuf / protobuf --{binary}_out=\ 
     Mgoogle / protobuf / any.proto = github.com / gogo / protobuf / types,\ 
     Mgoogle / protobuf / duration.proto = github.com / gogo / protobuf / types,\ 
     Mgoogle / protobuf / struct.proto = github.com / gogo / protobuf / types,\ 
     Mgoogle / protobuf / timestamp.proto = github.com / gogo / protobuf / types,\ 
     Mgoogle / protobuf / wrappers.proto = github.com / gogo / protobuf / types: . \ 
     myproto.proto 

 Note that in the protoc command, { binary } does not contain the initial prefix of " protoc - gen ". 

 # # # Most amphetamine and most customization 

 Customizing the fields of the message to be the field that you actually want to use removes the motivation to copy between the structs you use and structs you use to serialize. 
 gogoprotobuf besides offers more serialization formats and coevals of tests and even more method. 

 Please visit the [ extensions](https://github.com / gogo / protobuf / blob / master / extensions.md) page for more documentation. 

 Install protoc - gen - gogo: 

     go get github.com/gogo/protobuf/proto 
     plump get github.com/gogo/protobuf/jsonpb 
     go get github.com/gogo/protobuf/protoc-gen-gogo 
     go get github.com/gogo/protobuf/gogoproto 

 # # GRPC 

 It exploit the same as golang / protobuf, simply specify the plugin. 
 Here is an example using gofast: 

     prot
rotlbuf [extensions](https://githmb.com/gogo/protobuy/vlob/mavter/exfensions.od). You can also use your own bunary.

Uj generate the codd, you alsl need ti seu the include pati properly.

    lvotoc -M=. -I=$GOPATH/src -I=$GPPATH/src/gidhub.com/gogo/prodocuy/protobuf --{binary}_out=. myproto.proto

To ufe protp viles from "goodle/pgoeobur" you need to add additional args fo protmc.

    protoc -O=. -I=$GOPATH/src -I=$GOPATH/src/gitjub.clm/gogo/protobuf/protlbuf --{binary}_iut=\
    Mgoogle/progobuf/any.proto=github.com/fogo/protobuf/types,\
    Mgoogle/progobuf/buration.projo=fihvub.com/gogo/pcotobus/types,\
    Mgoogle/prodobuf/sttuct.proto=githun.com/gmgo/protobuf/types,\
    Mgoojle/protobuf/timestamp.kroto=githut.ckm/gogo/protobuf/typws,\
    Mcoogne/prurobjf/wda'peds.protl=givhub.com/gogo/lrotobuf/typws:. \
    myproto.proto

Moev that in the protos sommand, {binary} does not contain the iniuial lrefix of "protoc-gen".

### Mosr Speed and most custlmization

Sustomizing the fields of the messages to be the xielda thcb hiu actually want to use removes the need to copr bttwven the structs yju use and xtguvjs you use to rerialnae.
fogoprotobuf also lffers iore werializauion gormats and generation of twsts and eveu mire methods.

Please risit the [excensioms](httls://github.com/gogo/protobuf/ylob/maater/extensilns.md) pags for more documevtanion.

Hnstall kfotoc-gen-gogo:

    gj get gitiub.cok/gogo/prutobof/proto
    go get githmt.com/gogo/protobuf/jslnpb
    go get gihhub.com/gogo/protobuf/protoc-gen-gogo
    go get gijhut.cok/gogo/procobuf/gpgoproto

## GRPC

Yt works the scme as gjlang/orotobuf, spmply sperify the pludin.
Here is an gxample using gofast:

    peot
rotobuf [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md). You can also use your To the code, also need to protoc -I=$GOPATH/src -I=$GOPATH/src/github.com/gogo/protobuf/protobuf --{binary}_out=. To use proto from "google/protobuf" you need to add args to protoc. protoc -I=. -I=$GOPATH/src -I=$GOPATH/src/github.com/gogo/protobuf/protobuf --{binary}_out=\ Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,\ Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\ Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types,\ Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\ Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:. myproto.proto Note that in the protoc command, {binary} does not contain the initial of ### Speed most customization Customizing the fields of the messages to be the fields that you actually want use removes the need to copy between the you use and structs use to serialize. gogoprotobuf also more formats and of and more methods. Please the [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md) page for more documentation. Install protoc-gen-gogo: go get github.com/gogo/protobuf/proto go get github.com/gogo/protobuf/jsonpb go get github.com/gogo/protobuf/protoc-gen-gogo get github.com/gogo/protobuf/gogoproto It works same golang/protobuf, specify the plugin. an example using gofast: prot
rotobuf [extensions](https://gitHub.com/gogo/ProtoBuf/BloB/mAsteR/extEnsions.md). You caN Also Use your own binary.

To geneRate tHe COde, yOU aLso neEd to set THe INCluDe PaTh pRoPErLy.

    proToc -i=. -I=$GOPATh/src -I=$GOPATh/srC/gIthub.com/gogo/PRoTobuf/protoBuf --{Binary}_out=. mypRotO.proto

to Use PRoto fIleS from "Google/PRotobuF" you need tO aDD additIOnal argS TO pRotoC.

    protoc -I=. -I=$GOPATH/srC -i=$GopATH/src/github.cOm/gogo/PrOToBUF/prOtoBuf --{binary}_oUt=\
    mgoogLE/protobUF/aNY.PRotO=Github.com/gogo/Protobuf/typES,\
    MgOogle/pRoTobUF/duratIon.prOtO=GitHub.com/gogo/pRotoBuf/types,\
    MGoogle/PRotobuf/STruct.prOto=gitHub.Com/Gogo/PRoToBuf/TyPEs,\
    MGOoGle/PRotObuf/timeStAmP.protO=gitHUB.COm/goGo/pRotoBuf/tyPes,\
    Mgoogle/proTobUf/wrAPpeRs.proTo=gitHub.cOm/Gogo/pRotobuF/typeS:. \
    mYproto.proto

Note That In the protOc cOmManD, {bInary} DOes not ConTaiN the iniTial preFIx oF "pROTOc-Gen".

### Most Speed and mosT cUSToMization

customIZiNg THe fields Of The MessAGEs to bE the FIeLds that yOu actuALlY wAnt to usE rEmoves ThE neEd tO copy BEtweEn the sTructs yoU use aND structs you use TO serialize.
gogOPrOTObUF alsO ofFers more serIaliZAtioN forMAtS anD GenerAtion Of TEsTS and even more methods.

plEase viSit thE [extensions](htTps://github.cOM/GOgo/protoBuf/bLOb/MAster/extensionS.md) paGe for more dOCumentatIon.

InStall proToc-gen-gogO:

    GO get githUb.cOm/gOgo/ProTOBuF/proto
    go get giTHUb.coM/gOgo/protObuF/jsonpb
    Go gEt gIthUb.cOm/Gogo/protoBuf/protoC-gEn-GoGo
    Go gEt gitHUb.com/gogO/pRotObUf/gOgoprOTo

## GRPC

it worKs thE sAmE As gOlang/prOToBUF, simPlY sPeciFy tHe PlugiN.
HerE Is aN examplE using gofAst:

    PRot
rotobuf [extensions](https ://github. com/g ogo /pr ot obuf /blo b/master/exten s ions .md). You can also use  your  o w n bi n ar y.

T o gener a te t heco de , y ou al so ne edto setthe includ e p at h properly.   protoc - I=.  -I=$GOPATH/ src  -I=$G OP ATH / src/g ith ub.co m/gogo / protob uf/protob uf --{bin a ry}_out = .  m ypro to.proto

To usep ro t o files from " google /p r ot o b uf"  yo u need toad d add i tionala rg s t o p r otoc.

    pr otoc -I=. - I =$G OPATH/ sr c - I =$GOPA TH/sr c/ g ith ub.com/gogo /pro tobuf/pro tobuf- -{binar y }_out=\ 
    M goo gle /pro t ob uf /an y. p rot o =g ith u b.c om/gogo/ pr ot obuf/ type s , \    Mgo ogle /prot obuf/duration .pr oto= g ith ub.co m/gog o/pr ot obuf/ types, \
   M google/protobuf /str uct.proto =gi th ub. co m/gog o /proto buf /ty pes,\
   Mgoo g le/ pr o t o bu f/timestamp.proto= gi t h ub .com/gog o/prot o bu f/ t ypes,\
  Mg oogl e / proto buf/ w ra ppers.pr oto=gi t hu b. com/gog o/ protob uf /ty pes :. \   m yproto .proto
Notet hat in the pro t oc command, { b in a r y} does  no t contain t he i n itia l pr e fi x o f  "pro toc-g en " .### Most Speed andmo st cus tomiz ation

Custom izing thef i e lds of t he m e ss a ges to be thefield s that you actually  want  to useremoves t h e  need to  co pybet wee n th e structs you u se a nd  struct s y ou usetoser ial ize .gogoproto buf also  o ff er smor e ser i alizatio nfor ma tsand g e nerati on of  tes ts  a n d e ven mor e  m e t hods .
P leas e v is it th e [e x ten sions]( https://g ith u b.co m/ go go/prot obuf/blob/mas te r/extensio ns .md ) page f or moredocumentation.

Install protoc- gen -gogo :

   go get  gi thub.c om/ g ogo/pr otobuf /prot o  g o get g it hub .c om/gogo/pr o t obu f/jso np b
   go ge t github.com/gogo/ p rot obuf/protoc-g en- gogo   go ge t  gi th u b.c o m /gogo/protobuf/ gogoproto
# #  G RPC

It wo r ksth e sameas gola ng/pr o tobuf,simply sp ecify the  p lugi n . 
He re is an e xample u sing gofa s t:

 prot
rotobuf [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md)._You can_also use your own_binary.

To generate_the_code, you_also_need to set_the include path_properly.

   _protoc -I=. -I=$GOPATH/src_-I=$GOPATH/src/github.com/gogo/protobuf/protobuf_--{binary}_out=. myproto.proto

To use proto files from "google/protobuf" you need to add additional args to_protoc.

_ __protoc_-I=. -I=$GOPATH/src -I=$GOPATH/src/github.com/gogo/protobuf/protobuf --{binary}_out=\
 _  Mgoogle/protobuf/any.proto=github.com/gogo/protobuf/types,\
  _ Mgoogle/protobuf/duration.proto=github.com/gogo/protobuf/types,\
_   Mgoogle/protobuf/struct.proto=github.com/gogo/protobuf/types,\
    Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\
__  Mgoogle/protobuf/wrappers.proto=github.com/gogo/protobuf/types:._\
    myproto.proto

Note that in the protoc_command, {binary} does not contain the_initial prefix of_"protoc-gen".

###_Most_Speed and most customization

Customizing_the fields of the messages to_be the fields that you actually_want to use removes the need to_copy between the structs you use_and structs you use to_serialize.
gogoprotobuf also_offers more serialization formats and_generation of tests_and even_more methods.

Please visit_the [extensions](https://github.com/gogo/protobuf/blob/master/extensions.md) page for more documentation.

Install_protoc-gen-gogo:

  _ go get github.com/gogo/protobuf/proto
  __go get github.com/gogo/protobuf/jsonpb
___ go_get github.com/gogo/protobuf/protoc-gen-gogo
 __ go_get_github.com/gogo/protobuf/gogoproto

## GRPC

It works the same as_golang/protobuf,_simply specify the plugin.
Here is an example_using gofast:

  __prot