binaly
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i binaly

Weekly Downloads

0

Version

0.2.0

License

MIT

Unpacked Size

43.4 kB

Total Files

43

Last publish

Collaborators

  • towyuan