node-avro-io
v2.0.0
Published
This will allow you to encode / decode avro binary format to / from json format, it supports both deflate and snappy compressions and supports node streams
Downloads
40
Readme
Node Avro IO
Implements the avro spec
This status of this repository is initial release
npm install node-avro-io
or
npm install git://github.com/jamesbrucepower/node-avro-io.git
Serializing data to an avro binary file
var avro = require('./index').DataFile.AvroFile();
var schema = {
"name": "data",
"type": "record",
"fields": [
{"name":"key","type": "string"},
{"name":"value","type": "string"},
{"name":"flag","type": "boolean"},
{"name":"subrecord","type":"record","fields":[
{"name":"key","type":"string"},
{"name":"value","type":["string","int","null"]}
]}
]
};
var writer = avro.open("test.avro", schema, { flags: 'w', codec: 'deflate' });
writer
.append({ key:"john", value:"hive", flag: true, subrecord: { key: "preference", value: 2}})
.append({ key:"eric", value:"lola", flag: true, subrecord: { key: "postcode", value: null}})
.end({ key:"fred", value:"wonka", flag: false, subrecord: { key: "city", value: "michigan"}});
Deserializing data to from avro binary file
require("./index").DataFile.AvroFile()
.open('test.avro', null, { flags: 'r' })
.on('data', function(data) {
console.log(data);
});
See tests for more usage examples
TODO:
- Avro RPC
- Support for Trevni (column major data serialization)