A simple zero-dep binary byte stream implementation for Node.js and the browser with support for reading and writing numbers, strings, and varints (zigzag or unsigned) in both little and big endian encoding.
npm install bytewriter
Simple example to create a new empty Buffer stream:
const ByteStream = require('bytewriter')
const stream = new ByteStream()
stream.writeStringNT("hello world!") // write a string with a null term at end
const buffer = stream.getBuffer()
console.assert(buffer.equals(Buffer.from('hello world!\0'))
Load an existing one:
const BinaryStream = require('bytewriter')
const stream = new BinaryStream(Buffer.from('10 10 10', 'hex'))
const a = stream.readUInt8()
const b = stream.readUInt16()
See the typescript types here for the full API
MIT