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 <[email protected]> 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 [email protected]. > To post to this group, send email to [email protected]. > 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
