> One thing to clarify - in looking over comments for 777, there was mention of 
> JIRA-778 ( schema compiler ) code overlap. I'd like to focus on just the RPC 
> mechanism in the patch's rpc.c; My understanding of AVRO is using a compiled 
> schema is an optimization but not a requirement for AVRO's rpc. Or am I 
> missing something ( that I'll probably discover as I dig in more ) ?

Unfortunately the schema compiler in AVRO-778 has languished a bit; with the 
new value API, and the generic value class (described in [1]), there was less 
of a need for it.  Parts of that patch series have been applied separately, 
though, since they were useful for implementing the generic value class.  But 
as of right now, there's no schema compilation or code generation in the C 
bindings.

So at the very least, the AVRO-777 patch should be updated to use the new value 
API instead of the deprecated datum API.  AVRO-777 contains an AVDL compiler 
using the same Velocity templating engine that's used on the Java side of 
things.  AVRO-778 contains the beginnings of a schema compiler that was based 
on the C preprocessor.  It had fewer (i.e., no) dependencies to install, but 
it's kind of messy using the preprocessor as a templating language.  So you 
have a couple of options there.  I'll try to rebase the patch series from 
AVRO-778 so that it applies cleanly to trunk, in case you want to use parts of 
it.

–doug

[1] http://avro.apache.org/docs/current/api/c/index.html#_avro_values

Reply via email to