mtth/avsc
mtth/avsc has 1,389 GitHub stars and 157 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 06:13 UTC. Last push 2026-02-22.
Avro for JavaScript :zap:
What you can do
- Blazingly fast and compact serialization! Typically faster than JSON with much smaller encodings.
- All the Avro goodness and more: type inference, schema evolution...
- Support for serializing arbitrary JavaScript objects.
- Unopinionated 64-bit integer compatibility.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalAvsc

Pure JavaScript implementation of the Avro specification.
Features
- Blazingly fast and compact serialization! Typically faster than JSON with much smaller encodings.
- All the Avro goodness and more: type inference, schema evolution...
- Support for serializing arbitrary JavaScript objects.
- Unopinionated 64-bit integer compatibility.
Installation
$ npm install avsc
Documentation
Examples
const avro = require('avsc');
Encode and decode values from a known schema:
const type = avro.Type.forSchema({ type: 'record', name: 'Pet', fields: [ { name: 'kind', type: {type: 'enum', name: 'PetKind', symbols: ['CAT', 'DOG']} }, {name: 'name', type: 'string'} ] }); const buf = type.toBuffer({kind: 'CAT', name: 'Albert'}); // Encoded buffer. const val = type.fromBuffer(buf); // = {kind: 'CAT', name: 'Albert'}Infer a value's schema and encode similar values:
const type = avro.Type.forValue({ city: 'Cambridge', zipCodes: ['02138', '02139'], visits: 2 }); // We can use `type` to encode any values with the same structure: const bufs = [ type.toBuffer({city: 'Seattle', zipCodes: ['98101'], visits: 3}), type.toBuffer({city: 'NYC', zipCodes: [], visits: 0}) ];Get a readable stream of decoded values from an Avro container file (see the
BlockDecoderAPI for an example compressed using Snappy):avro.createFileDecoder('./values.avro') .on('metadata', function (type) { /* `type` is the writer's type. */ }) .on('data', function (val) { /* Do something with the decoded value. */ });
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,903 starspublic-apis/public-apis
A collective list of free APIs
497,142 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
442,158 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,173 stars