Marc-André Moreau 2013-06-20, 04:55
-Re: Avro C RPC
Douglas Creager 2013-06-25, 13:32
> The first issue I encountered was the lack of a proper sample for Avro C
> and the new value API in the documentation. The given sample still shows
> the datum API. I figured it out by looking at the unit tests, but it
> wasn't an easy "getting started".
Documentation has definitely not been our strong point with the C
bindings, and I apologize for that. There is a more introductory
example available here:
Hopefully that will reinforce what you learned looking through the test
cases, and maybe give you a couple of insights that you didn't pick up
on before. And of course we're happy to answer questions here on the
One open agenda item is to better incorporate that example into the
documentation at avro.apache.org, so that it's easier to find. And to
add proper reference documentation in the form of man pages.
> For now I've just defined a very simple JSON schema which I'm using to
> serialize and deserialize a bunch of booleans and ints. However, I may
> be interested in developing tools in other languages for communicating
> with my C programs. This is where I'd really like to know how exactly I
> can do RPC with Avro C. Aside from the apparent lack of information as
> to how we can do RPC with Avro C, there is also inconsistent information
> given about the level of support. Somes slides online show RPC as being
> supported for C, while in other places the docs say RPC is not
> implemented for Avro C.
As far as I'm aware, there is no support for RPC in any of the released
versions of the C bindings, nor in the Subversion trunk branch. There
is an open issue to add that support:
It even includes a patch, but from two years ago, so you would have to
update it to the latest API. There were also a couple of portability
questions. But it's a start, if you've got the time to look at it. The
main road block, as always, is time; there are many fewer people using
and developing the C bindings (especially compared to the Java
bindings), and those who are using it are really only using the data
serialization part of the standard. So feature requests like these have
often fallen by the wayside if there's not someone with a pressing need
willing to drive the process forward.
I hope this helps; please let me know if I can answer any other
questions you might have.