`protoc-c` does generate its own structs. We are creating our own to insulate the user from the lower-level protocol. As it stands, I could switch the transport to, say HTTP, and the user interface does not change. Same as if we switch to any zany new protocol of the month.  I was going to look longer term into code gening some of the these from the PBC headers.  Sadly there are lots of tiny difference, such as nested structs.  After talking with Dave, we decided it would be better to get a client out rather than creating more infrastructure at this point.  One thing we are working on is having the `riak_pb` project create our headers for us, too.