Meet npm Pro: unlimited public & private packages + package-based permissions.Learn more »

@hlorenzi/buffer

1.2.0 • Public • Published

buffer

Utilities for working with buffers in JS.
Currently features a simple buffer reader that reads from an unsigned byte array, while automatically advancing the read head and allowing seeks.

Install with: npm install @hlorenzi/buffer

Example

import { BufferReader } from "@hlorenzi/buffer"
 
const arr = [0x01, 0x23, 0x45, 0x67, 0x89, 0xab, 0xcd, 0xef]
const buf = new BufferReader(arr)
 
console.log(buf.readUint8())    // 0x01
console.log(buf.readUint8())    // 0x23
console.log(buf.readUint16BE()) // 0x4567
console.log(buf.readUint32BE()) // 0x89abcdef

API

new BufferReader(byteArray)
 
// Properties
BufferReader#length
BufferReader#head
 
// Read head manipulation
BufferReader#seek(byteIndex)
 
// Peek without advancing the read head
BufferReader#peekUint8()
 
// Read unsigned
BufferReader#readUint8()
BufferReader#readUint16LE()
BufferReader#readUint16BE()
BufferReader#readUint32LE()
BufferReader#readUint32BE()
 
// Read two's complement signed
BufferReader#readInt8()
BufferReader#readInt16LE()
BufferReader#readInt16BE()
BufferReader#readInt32LE()
BufferReader#readInt32BE()
 
// Read multiple unsigned into an array
BufferReader#readManyUint8(count)
BufferReader#readManyUint16LE(count)
BufferReader#readManyUint16BE(count)
BufferReader#readManyUint32LE(count)
BufferReader#readManyUint32BE(count)
 
// Read multiple two's complement signed into an array
BufferReader#readManyInt8(count)
BufferReader#readManyInt16LE(count)
BufferReader#readManyInt16BE(count)
BufferReader#readManyInt32LE(count)
BufferReader#readManyInt32BE(count)
 
// Read floats
BufferReader#readFloat32()
BufferReader#readFloat64()
 
// Read multiple floats into an array
BufferReader#readManyFloat32(count)
BufferReader#readManyFloat64(count)
 
// Read ASCII-encoded strings
BufferReader#readAsciiLength(lengthInBytes)
BufferReader#readAsciiZeroTerminated()
 
// Read UTF-16-encoded strings
BufferReader#readUtf16LELength(lengthIn16BitUnits)
BufferReader#readUtf16BELength(lengthIn16BitUnits)

Install

npm i @hlorenzi/buffer

DownloadsWeekly Downloads

0

Version

1.2.0

License

ISC

Unpacked Size

17.2 kB

Total Files

5

Last publish

Collaborators

  • avatar