1.0.1 • Published 5 years ago

node-bit-stream v1.0.1

Weekly downloads
4
License
ISC
Repository
github
Last release
5 years ago

Bit Stream

Write individual bits to a node stream:

N.B. The version of Node written for and tested against is 6.1.0

Methods

Updating the Stream

The following methods operate on the stream:

  • align - Align to a byte boundary
  • end - Align to a byte boundary, flush the data and emit the finish event
  • flush - Emit all whole bytes written so far and re-allocate the buffer

Writing Bits

The following methods support writing of individual bits:

  • writeArrayBits - Write a number array of bit values
  • writeIntBits - Write an integer value as the specified number of bits
  • writeStringBits - Write a string of bit values

N.B. The underlying buffer is set to 1024 bytes. Exceeding this length will throw an error.

Writing Bytes

The following methods operate on the wrapped buffer by byte-aligning any data written so far then calling the corresponding method on the buffer:

  • write
  • writeDoubleBE
  • writeDoubleLE
  • writeFloatBE
  • writeFloatLE
  • writeInt8
  • writeInt16BE
  • writeInt16LE
  • writeInt32BE
  • writeInt32LE
  • writeIntBE
  • writeIntLE
  • writeUInt8
  • writeUInt16BE
  • writeUInt16LE
  • writeUInt32BE
  • writeUInt32LE
  • writeUIntBE
  • writeUIntLE

(see the stream.Buffer documentation for usage details)

Usage Examples

constructor

const BitStream = require('node-bit-stream');
const bitStream = new BitStream();

align()

bitStream.writeStringBits('0011');
bitStream.align(); // 00110000

writeArrayBits(value)

bitStream.writeArrayBits([0, 0, 0, 1, 1, 0, 0, 0]); // 00011000

writeInt32Bits(value, bitLength = 32)

bitStream.writeInt32Bits(3, 8); // 00000011
bitStream.writeInt32Bits(-3); // 11111111111111111111111111111101

writeStringBits(value)

bitStream.writeStringBits('0011');
bitStream.writeStringBits('0011'); // 00110011

Node Commands

Install Dev Dependencies

npm install

Test

npm test

Lint

npm run lint

Documentation

npm run doc

(Create files in the Doc directory)