Protocol buffers in the public project consists primarily of the serialization framework; serialization is always necessary when communicating, and frameworks/formats are aplenty, including xml, json, etc. The primary features of protocol buffers (protobuf) are:
- efficient binary on the wire (small bandwidth) - efficient to encode (small CPU) - efficient to decode (small CPU) - cross platform and public specification (contrast with the inbuilt Java or .NET binary serialization, which is single platform and closed specification) As I understand it from this forum, inside google, the protobuf framework includes a full RPC stack; however, this piece has never been released to the wider community, so while the .proto definitions include stubs for RPC hooks, they are not very useful. That is a valid criticism. However! Efficient and portable serialization **by itself** is very valuable. Once you can serialize your data down to a blob (typically a `byte[]`, or whatever is the equivalent in your framework) you can send it anywhere and rehydrate at the other end. That could be local disk storage, storage inside a database or key/value store (redis etc), transmission as an http payload, or raw socket data. If your chosen comm's stack only supports strings, then convert it to base-64 and you're sorted. I suspect the key point here is in your last comment; "I also don't understand what is serialize mean?!". Serialization is converting structured data in some form down to a chunk of binary (or a string, noting that a string is of course just a special-case of binary) suitable for storage or transmission. To emphasize: the public protobuf drop is not an RPC stack. If you look to it for RPC, you will indeed be somewhat disappointed. But look at it as a serialization stack, and you'll be pretty happy. Marc On 26 April 2014 13:17, Flowra white <flowrathe...@gmail.com> wrote: > > > > > > > > > > > > *Hi,,I was reading a book about Google and that book was talking about the > communication paradigms and as i understand google use RPCbut the book > mentioned something named protocol buffer I don't get why we use it and > what is the relation between it and RPC I searched for meaning but all i > get that it is a way to serialize structured data "I also don't understand > what is serialize mean?!" sorry for bothering , and I wish anyone could > help me .thanks,,* > > -- > You received this message because you are subscribed to the Google Groups > "Protocol Buffers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to protobuf+unsubscr...@googlegroups.com. > To post to this group, send email to protobuf@googlegroups.com. > Visit this group at http://groups.google.com/group/protobuf. > For more options, visit https://groups.google.com/d/optout. > -- Regards, Marc -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to protobuf+unsubscr...@googlegroups.com. To post to this group, send email to protobuf@googlegroups.com. Visit this group at http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.