Documentation
    Preparing search index...

    Cross-platform binary buffer with auto-advancing cursor.

    import { ISOBuffer } from 'iso-base/buffer'

    // Create from size
    const buf = new ISOBuffer(256)

    // Write some data
    buf.writeUint8(0x01)
    buf.writeUint32(0xdeadbeef)
    buf.writeUtf8('hello')

    // Rewind and read back
    buf.rewind()
    console.log(buf.readUint8()) // 1
    console.log(buf.readUint32().toString(16)) // 'deadbeef'
    console.log(buf.readUtf8(5)) // 'hello'
    Index

    Constructors

    • Create a new ISOBuffer.

      Parameters

      • Optionaldata: ISOBufferInput = DEFAULT_SIZE

        Initial data or size. Defaults to 8KB.

        • If a number, creates a new buffer of that size
        • If ArrayBuffer/Uint8Array/ISOBuffer, wraps it (zero-copy view)
      • Optionaloptions: ISOBufferOptions = {}

        Configuration options

      Returns ISOBuffer

      import { ISOBuffer } from 'iso-base/buffer'

      // From size
      const buf1 = new ISOBuffer(256)

      // From Uint8Array (zero-copy)
      const arr = new Uint8Array([1, 2, 3, 4])
      const buf2 = new ISOBuffer(arr)

      // From ArrayBuffer with offset
      const ab = new ArrayBuffer(100)
      const buf3 = new ISOBuffer(ab, { offset: 10 })

      // Big-endian mode
      const buf4 = new ISOBuffer(64, { littleEndian: false })

    Properties

    buffer: ArrayBuffer

    The underlying ArrayBuffer

    byteOffset: number

    Byte offset within the underlying ArrayBuffer

    bytes: Uint8Array<ArrayBufferLike>

    Uint8Array view over the buffer

    length: number

    Byte length of the buffer

    offset: number

    Current cursor position

    Accessors

    • get byteLength(): number

      Byte length of the buffer (alias for length, for compatibility)

      Returns number

    Methods

    • Check if there's enough space to read/write n bytes from current offset.

      Parameters

      • OptionalbyteLength: number = 1

        Number of bytes needed

      Returns boolean

      True if space is available

      import { ISOBuffer } from 'iso-base/buffer'

      const buf = new ISOBuffer(4)
      buf.available(4) // true
      buf.skip(2)
      buf.available(4) // false
      buf.available(2) // true
    • Create a new ISOBuffer wrapping the same underlying buffer. Changes to either buffer affect the other.

      Returns ISOBuffer

    • Ensure buffer has enough space, growing if necessary. Growth strategy: double the required size.

      Parameters

      • OptionalbyteLength: number = 1

        Number of bytes needed

      Returns ISOBuffer

      import { ISOBuffer } from 'iso-base/buffer'

      const buf = new ISOBuffer(4)
      buf.seek(4)
      buf.ensureAvailable(10) // Buffer grows to accommodate
      buf.available(10) // true
    • Get number of bytes written so far.

      Returns number

    • Check if big-endian mode is active.

      Returns boolean

    • Check if little-endian mode is active.

      Returns boolean

    • Read signed 64-bit BigInt, advance cursor by 8.

      Returns bigint

    • Read unsigned 64-bit BigInt, advance cursor by 8.

      Returns bigint

    • Read a boolean (1 byte, false if 0, true otherwise).

      Returns boolean

    • Read n bytes as Uint8Array (zero-copy subarray), advance cursor.

      Parameters

      • n: number

        Number of bytes to read

      Returns Uint8Array<ArrayBufferLike>

    • Read 32-bit float, advance cursor by 4.

      Returns number

    • Read 64-bit double, advance cursor by 8.

      Returns number

    • Read signed 16-bit integer, advance cursor by 2.

      Returns number

    • Read signed 32-bit integer, advance cursor by 4.

      Returns number

    • Read signed 8-bit integer, advance cursor by 1.

      Returns number

    • Read unsigned LEB128 encoded bigint, advance cursor.

      Returns bigint

      The decoded value

    • Read unsigned 16-bit integer, advance cursor by 2.

      Returns number

    • Read unsigned 32-bit integer, advance cursor by 4.

      Returns number

    • Read unsigned 8-bit integer, advance cursor by 1.

      Returns number

    • Read n bytes and decode as UTF-8 string.

      Parameters

      • n: number

        Number of bytes to read

      Returns string

    • Read unsigned varint (multiformats style), advance cursor.

      Returns number

      The decoded value

      import { ISOBuffer } from 'iso-base/buffer'

      const buf = new ISOBuffer(new Uint8Array([0xac, 0x02]))
      console.log(buf.readVarint()) // 300
    • Get remaining bytes available from current offset.

      Returns number

    • Get a zero-copy subarray view.

      Parameters

      • Optionalstart: number = 0

        Start offset

      • Optionalend: number

        End offset (defaults to length)

      Returns Uint8Array<ArrayBufferLike>

    • Get a Uint8Array of the written portion of the buffer. This is a view from byteOffset to lastWrittenByte.

      Returns Uint8Array<ArrayBufferLike>

    • Write unsigned 64-bit BigInt, advance cursor by 8.

      Parameters

      • value: bigint

      Returns ISOBuffer

    • Write boolean as single byte (0xff for true, 0x00 for false).

      Parameters

      • value: boolean

      Returns ISOBuffer

    • Write bytes from Uint8Array, advance cursor.

      Parameters

      • bytes: Uint8Array<ArrayBufferLike> | ArrayLike<number>

      Returns ISOBuffer

    • Write unsigned LEB128 encoded bigint.

      Parameters

      • value: string | number | bigint

        Value to encode

      Returns ISOBuffer

    • Write unsigned varint (multiformats style), advance cursor.

      Parameters

      • value: number

        Value to encode (must be non-negative safe integer)

      Returns ISOBuffer

      import { ISOBuffer } from 'iso-base/buffer'

      const buf = new ISOBuffer(16)
      buf.writeVarint(300)
      console.log(buf.toArray()) // Uint8Array([0xac, 0x02])