Google Protocol Buffers
For those who, like me 3 months ago, didn't have a fucking clue what 'protocol buffers' were, I fear - unless you're wanting to know about another IPC protocol - you're going to be disappointed. Software sadists (and those who know WTF I'm talking about) may continue reading...
Anyone here have any (live) experience of implementing Google's 'protocol buffers'?
Specifically I'm after any gotcha's beyond their (dire) FAQ (or documentation in general.)
Searches tend to turn up 'I can't install it' or 'it won't compile' or other answers that fall into the 'I thought this was brillant but can't install it - help' category. I'm beyond that and have PoC ('proof of concept' to save you searching) code that will run (Target is cross-compiled - and getting that far seemed easier than some searches seemed to indicate.) My search-foo is failing to find the faults with it.
We're (or rather my side is) a 'C' shop, thus are relying on a 3rd party implementation that (after a few off-hours work) seems to work and probably will work well, and could work better than our in-house stuff, but...
... there's got to be problems using it (over the in-house, triangular wheels, that we are currently using, which are fragile) - there is no Nirvana with this sorta stuff.
If I go with it, which Circles of Hell will I (or rather 'we' - the other side we talk to is (in-house) Java I understand) encounter (say) 1yr down the line?
The messages concerned (should it matter) are currently being sent over UDP (not TCP) and this will not change, so are naturally restricted to 64K messages anyway and, in the current (and future) implementation, IP packet loss is expected, and dealt with, within the current (non-buffers) protocol.
 In the absence of 'we're using it in production, and...' comments, I'll take suggestions from those that thought about it and discarded it - I'd be interested why, and what was used instead.
mott555 last edited by
You have so many parentheses in your post that for a minute I thought you were trying to write LISP code.