🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

avsc

Package Overview
Dependencies
Maintainers
1
Versions
158
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

avsc

Avro for JavaScript

5.7.7
latest
Source
npm
Version published
Weekly downloads
850K
0.34%
Maintainers
1
Weekly downloads
 
Created

What is avsc?

The avsc npm package is a library for encoding and decoding data in the Avro serialization format. It provides tools for working with Avro schemas, serializing and deserializing data, and performing schema evolution.

What are avsc's main functionalities?

Schema Definition

This feature allows you to define Avro schemas using JSON. The code sample demonstrates how to define a simple Avro schema for a record with 'name' and 'age' fields.

const avro = require('avsc');
const type = avro.Type.forSchema({
  type: 'record',
  fields: [
    {name: 'name', type: 'string'},
    {name: 'age', type: 'int'}
  ]
});

Serialization

This feature allows you to serialize JavaScript objects into Avro binary format. The code sample shows how to serialize an object with 'name' and 'age' fields into a buffer.

const avro = require('avsc');
const type = avro.Type.forSchema({
  type: 'record',
  fields: [
    {name: 'name', type: 'string'},
    {name: 'age', type: 'int'}
  ]
});
const buf = type.toBuffer({name: 'John Doe', age: 30});

Deserialization

This feature allows you to deserialize Avro binary data back into JavaScript objects. The code sample demonstrates how to deserialize a buffer back into an object.

const avro = require('avsc');
const type = avro.Type.forSchema({
  type: 'record',
  fields: [
    {name: 'name', type: 'string'},
    {name: 'age', type: 'int'}
  ]
});
const buf = type.toBuffer({name: 'John Doe', age: 30});
const obj = type.fromBuffer(buf);

Schema Evolution

This feature supports schema evolution, allowing you to read data written with an older schema using a newer schema. The code sample shows how to evolve a schema by adding a new field with a default value.

const avro = require('avsc');
const oldType = avro.Type.forSchema({
  type: 'record',
  fields: [
    {name: 'name', type: 'string'}
  ]
});
const newType = avro.Type.forSchema({
  type: 'record',
  fields: [
    {name: 'name', type: 'string'},
    {name: 'age', type: 'int', 'default': 0}
  ]
});
const buf = oldType.toBuffer({name: 'John Doe'});
const obj = newType.fromBuffer(buf);

Other packages similar to avsc

Keywords

api

FAQs

Package last updated on 12 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts