Thrift compatibility.

Thrift primitive types are mapped to Avro schemas as follows:

Thrift type | Avro schema
--- | ---
bool | "boolean"
byte | {"type": "int", "thrift": "byte"}
i16 | {"type": "int", "thrift": "short"}
i32 | "int"
i64 | "long"
double | "double"
string | "string"
binary | "bytes"

Thrift complex types are mapped to Avro complex types as follows:

Thrift | Avro
--- | ---
struct | record
enum | enum
list | array
set | array (Note: "thrift":"set" is added to schema.)
map | map (Note: only string keys are permitted.)