0.2.0 • Published 2 years ago

binaly v0.2.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

binaly

A general flow binary parser and encoder

Installation

npm i binaly

Examples

Encoding

LengthFixed encoding

const {BinEncoder} = require('binaly');

const encoder = new BinEncoder();

const data = encoder.encode(Buffer.from([116, 101, 115, 116]), Buffer.from([48]));

console.log(data);
// ->
// <Buffer 30 04 00 00 00 74 65 73 74>

LengthVariable encoding

const {BinEncoder, LengthVariable} = require('binaly');

const encoder = new BinEncoder({lengthSize: LengthVariable.encode()});

const data = encoder.encode(Buffer.from([116, 101, 115, 116]), Buffer.from([48]));

console.log(data);
// ->
// <Buffer 30 04 74 65 73 74>

Parsing

LengthFixed parsing

const {BinParser, LengthFixed} = require('binaly');

const parser = new BinParser({
  headerSize: 1,
  // lengthSize: LengthFixed.decode(4),
});

parser.on('packet', packet => {
  console.log(packet);
  // =>
  // {
  //   length: 4,
  //   payload: <Buffer 74 65 73 74>,
  //   header: <Buffer 30>
  // }
});

parser.parse(Buffer.from([48, 4, 0, 0, 0, 116, 101, 115, 116]));

LengthVariable parsing

const {BinParser, LengthVariable} = require('binaly');

const parser = new BinParser({
  headerSize: 1,
  lenghSize: LengthVariable.decode(),
});

parser.on('packet', packet => {
  console.log(packet);
  // =>
  // {
  //   length: 4,
  //   payload: <Buffer 74 65 73 74>,
  //   header: <Buffer 30>
  // }
});

parser.parse(Buffer.from([48, 4, 116, 101, 115, 116]));

API

TBD

License

MIT