Avro types 
Pure JavaScript implementation of the Avro
specification.
Features
Installation
$ npm install @avro/types
@avro/types is compatible with all versions of node.js since 0.11.
Examples
Inside a node.js module, or using browserify:
const {Type} = require('@avro/types');
-
Encode and decode values from a known schema:
const type = Type.forSchema({
type: 'record',
fields: [
{name: 'kind', type: {type: 'enum', symbols: ['CAT', 'DOG']}},
{name: 'name', type: 'string'}
]
});
const buf = type.toBuffer({kind: 'CAT', name: 'Albert'});
const val = type.fromBuffer(buf);
-
Infer a value's schema and encode similar values:
const type = Type.forValue({
city: 'Cambridge',
zipCodes: ['02138', '02139'],
visits: 2
});
const bufs = [
type.toBuffer({city: 'Seattle', zipCodes: ['98101'], visits: 3}),
type.toBuffer({city: 'NYC', zipCodes: [], visits: 0})
];