ralphm said:

ralphm

Reading up on Google's Protocol Buffers

1 year, 6 months ago.

15 comments so far

  • BUGabundo

    anything good? can you provide with a short resume?

    1 year, 6 months ago by BUGabundo

  • ralphm

    It is a simple, efficient serialization format for structured data

    1 year, 6 months ago by ralphm

  • mikie

    Recommended for all your storage and transportation needs.

    1 year, 6 months ago by mikie

  • PanMan

    AND it's FASTER than xml! Who would have thought!? :)

    1 year, 6 months ago by PanMan

  • adewale

    Maybe this: http://ralphm.jaiku.com/presence/26244405 makes a little more sense now.

    1 year, 6 months ago by adewale

  • ralphm

    @adewale: make sense how?

    1 year, 6 months ago by ralphm

  • wok

    ftp://ftp.rfc-editor.org/in-notes/rfc1832.txt

    XDR: External Data Representation Standard

    XDR is a standard for the description and encoding of data. It is useful for transferring data between different computer architectures, and has been used to communicate data between such diverse machines.

    XDR uses a language to describe data formats.

    1 year, 6 months ago by wok

  • wok

    XDR is from 1995 :)

    1 year, 6 months ago by wok

  • adewale

    @ralphm The android docs said "in the future it will likely move to a binary protocol that will not be compatible with XMPP." I believe (but I don't work on Android so I don't know) that this binary protocol will be PB. The argument they seem to be making is that the efficiency (smaller files on disk and less traffic on the wire) gains are worth abandoning XMPP as the protocol for connecting phones to servers.

    1 year, 6 months ago by adewale

  • ralphm

    @adewale: I would say that while this might be a reason, there are more challenges in XMPP over radio links that we need to hash out sooner rather than later.

    1 year, 6 months ago by ralphm

  • dwd

    I wasn't clear if PB was capable of transport of unknown schemas in the same way that, say, XML or BER can be.

    1 year, 6 months ago by dwd

  • ralphm

    @dwd: Reading the description of the binary serialization format, I am sure you cannot. The format is not self-descriptive, you need the .proto to properly consume.

    1 year, 6 months ago by ralphm

  • dwd

    So fairly naff, then.

    1 year, 6 months ago by dwd

  • adewale

    If people want a self-describing format there are lots of good ones. I used to use XStream (which has XML and JSON formats) and it gives you this.

    PB is really only for those niches where you control both ends of the connection and you want to reduce the amount of traffic (e.g. if you had some very large number of servers spread around the world and needing to talk to each other) and you need to be able to evolve the format in a way that's backwards+forwards compatible across various languages.

    This isn't a universal wire protocol nor is it the ultimate IDL. It's just the nexus of various trade-offs that are inherent in large-scale distributed systems.

    1 year, 6 months ago by adewale

  • ralphm

    @adewale: sure, this was clearly understood by me. I think it is a nice internal exchange format. I would have considered it for the different components that make up Jaiku, for example. Unfortunately*, there doesn't appear to be a PHP binding, yet.

    I didn't know about Thrift until last monday (coincidently, before Google's announcement). I am not a big fan of RPC in general, so I think Thrift offers too much for me. Also, I'd like it to work in asynchronous networking code (like Twisted), and I don't think there is support for that (yet?)

    For external communications, I would choose technologies like XMPP and JSON and or XML over HTTP (likely REST like). The (un)parsing overhead of XML in those scenarios is largely irrelevant in that case. It also seems easy to make XML and JSON serializers for PB format descriptions.

    • Yes, I loathe PHP, but some of the stuff I work on is built in PHP.

    1 year, 6 months ago by ralphm

Sign in to add a comment