@node-lightning/bufio
v0.28.0
Published
Buffer IO utilities
Downloads
1,338
Readme
Utilities for Buffer IO
Usage:
npm install @node-lightning/bufio
const { BufferReader, BufferWriter } = require("@node-lightning/bufio");
// write arbitrary length data
const writer = new BufferWriter();
writer.writeUInt8(1);
writer.writeUInt16BE(2);
writer.writeUInt32BE(3);
writer.writeBytes(Buffer.from([4]));
let buffer = writer.toBuffer();
// read values
const reader = new BufferReader(buffer);
console.log(buffer.readUInt8());
console.log(buffer.readUInt16BE());
console.log(buffer.readUInt32BE());
console.log(buffer.readBytes());
BufferReader
This class wraps an existing Buffer and allows reading data from the Buffer. This class includes
position: number
- the current buffer cursor positioneof: bool
- whether the current position is at the end of the bufferbuffer: Buffer
- the underlying bufferlastReadBytes
- number of bytes last read from the bufferreadUInt8(): number
- reads 1 bytereadUInt16LE(): number
- reads 2 bytes as 16-bit little-endian unsigned integerreadUInt16BE(): number
- reads 2 bytes as 16-bit big-endian unsigned integerreadUInt32LE(): number
- reads 4 bytes as 32-bit little-endian unsigned integerreadUInt32BE(): number
- reads 4 bytes as 32-bit big-endian unsigned integerreadUInt64LE(): bigint
- reads 8 bytes as 64-bit little-endian unsigned integerreadUInt64BE(): bigint
- reads 8 bytes as 64-bit big-endian unsigned integerreadVarUint(): bigint
- reads a variable length integer as defined in the Bitcoin protocol docsreadBigSize(): bigint
- reads a variable length integer as defined in the Lightning NetworkreadBytes([len]): Buffer
- reads the optionally specified number of bytes. If no length is supplied, it reads to the end of the buffer.
BufferWriter
This class can accept an existing Buffer and write to. When used in this mode the Buffer length is fixed and writes that overflow the Buffer will throw an execption.
This class can intenrally manage a Buffer and will automatically expand to fit
the data footprint required. At the end of writing, .toBuffer
must be called
to obtain the underlying Buffer.
writeUInt8(number): undefined
- writes 1 bytewriteUInt16LE(number): undefined
- writes a number as a 16-bit little-endian unsigned integerwriteUInt16BE(number): undefined
- writes a number as a 16-bit big-endian unsigned integerwriteUInt32LE(number): undefined
- writes a number as a 32-bit little-endian unsigned integerwriteUInt32BE(number): undefined
- writes a number as a 32-bit big-endian unsigned integerwriteUInt64LE(number): undefined
- writes a number as a 64-bit little-endian unsigned integerwriteUInt64BE(number): undefined
- writes a number as a 64-bit big-endian unsigned integerwriteBytes(buffer): undefined
- writes the supplied buffer to the cursor buffer