node-bit-stream
v1.0.1
Published
Write individual bits to a node stream
Downloads
17
Readme
Bit Stream
Write individual bits to a node stream:
- extends stream.Writable
- wraps stream.Buffer
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)