node-avro-io

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

Node Avro IO

Implements the avro spec

This status of this repository is work in progress

npm install git://github.com/jamesbrucepower/node-avro-io.git

Serializing data to an avro binary file

var fs = require('fs');
var DataFile = require('node-avro-io').DataFile;
 
var avro = DataFile.AvroFile();
var fileStream = fs.createFileStream('test.avro');
 
var schema = 'string';
var writer = avro.open("test.avro", schema, { flags: 'w', codec: 'deflate' });
writer
    .pipe(fileStream)
    .append("The quick brown fox jumped over the lazy dogs")
    .append("Another entry")
    .end();

Deserializing data to from avro binary file

var DataFile = require("node-avro-io").DataFile;
 
var avro = DataFile.AvroFile();
 
var reader = avro.open('test.avro', { flags: 'r' });
reader.on('data', function(data) {
    console.log(data);
});

...lots more to follow...

For now see test/*

TODO:

  • Avro RPC
  • Support for Trevni (column major data serialization) serialisation