Avro provides rich data structures, a compact & fast binary data format, a
container file to store persistent data, remote procedure calls (RPC), and a
simple integration with dynamic languages. Code generation is not required to
read or write data files nor to use or implement RPC protocols. Code
generation as an optional optimization, only worth implementing for statically
typed languages.