2.0.0 • Published 5 years ago

node-avro-io v2.0.0

Weekly downloads
218
License
Apache-2.0
Repository
github
Last release
5 years ago

Node Avro IO

Build Status

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)
2.0.0

5 years ago

1.0.1

7 years ago

1.0.0

8 years ago

0.3.3

9 years ago

0.3.1

9 years ago

0.3.0

9 years ago

0.2.0

10 years ago

0.1.0

11 years ago