binary-data-frame

Simplify the way you handle binary data in JavaScript.

Usage no npm install needed!

<script type="module">
  import binaryDataFrame from 'https://cdn.skypack.dev/binary-data-frame';
</script>

README

Binary Data Frame

Simplify the way you handle binary data in JavaScript.

How to

Install

npm install --save binary-data-frame

Usage

let DataFrame = require('binary-data-frame');

//define the data frame format, fields may be defined as follow:
//foo(1)			: a 1-byte field named foo
//foo(byte)			: a 1-byte field named foo
//foo(2 bytes)		: a 2-bytes field named foo
//foo(short)		: a unsigned-short (=2 bytes) field named foo
//foo(32 bits)		: a 32-bits(4 bytes) field named foo
//foo(+4 bytes)		: a 4-bytes signed field named foo
//foo(+int)			: a signed-int (=4 bytes) field named foo
//foo(10 string)	: a 10-bytes string field named foo
//(4)				: a 4-bytes anonymous field
let format = `
    -----------------------------------------------------------------
    | version(1) 	| (+8 bits) 	| length(short)					|
    -----------------------------------------------------------------
    | action(short) 				| (2)							|
    -----------------------------------------------------------------
    | optional(4)													|
    -----------------------------------------------------------------
    | accessCode(10 string)											|
    |																|
    |																|
    -----------------------------------------------------------------
    | (26)															|
    |																|
    |																|
    |																|
    |																|
    |																|
    |																|
    -----------------------------------------------------------------
`;

//set value
let foo = new DataFrame(format);
foo.version = 0x10;
foo.length = 0x50;
foo.action = 0x31;
foo.accessCode = '1234567890';
console.log(foo.toString()); //convert the binary buffer into utf8 string
console.log(foo.buffer); //get the internal buffer

//you can also parse binary buffer, too
let bar = new DataFrame(format);
bar.buffer = someBuffer;
console.log(bar.accessCode); //'1234567890'