Notebook Page Margin

    TypeScript icon, indicating that this package has built-in type declarations

    3.0.1 • Public • Published


    A Node and Bun compatible buffer tool that permit easier binary manipulation.

    License Version

    Basic installation and usage

    You can install this package by using your preferred node package manager (NPM, PNPM, Yarn, etc) or bun

    npm install bufferutility # NPM
    pnpm add bufferutility # PNPM
    yarn add bufferutility # Yarn
    bun add bufferutility # Bun

    You can then start using the package by requiring it from your application as such:

    import { BufferUtility } from 'bufferutility';

    Common Usage

    Create a new BufferUtility

    import { BufferUtility } from 'bufferutility';
    const buffer = new BufferUtility();
    // <BufferUtility>
    buffer[0] = 0xfa; // or buffer.writeByte(0xfa, 0);
    // <BufferUtility fa>
    console.log(buffer[0]); // or console.log(buffer.readByte(0));
    // 250

    Create a BufferUtility with different modules

    BufferUtility actually have 3 modules you can use

    • Uint8ArrayModule (compatible with Node and Bun): It use an Uint8Array to store the data (default module).
    • NodeBufferModule (compatible with Node): It use a NodeJS Buffer to store the data.
    • FileSystemModule (compatible with Node and Bun): It use a file to store the data (permit "infinite" size).
    // Uint8Array module
    import { BufferUtility, Uint8ArrayModule } from 'bufferutility';
    const Uint8Buffer = new BufferUtility([], {
      module: Uint8ArrayModule
    console.log(Uint8Buffer.buffer) // Uint8Array(1) [ 15 ]
    // Node Buffer module
    import { BufferUtility, NodeBufferModule } from 'bufferutility';
    const NodeBuffer = new BufferUtility([], {
      module: NodeBufferModule
    console.log(NodeBuffer.buffer) // <Buffer 0f>
    // File System module
    import { BufferUtility, FileSystemModule } from 'bufferutility';
    const FSBuffer = new BufferUtility("file.txt", {
      module: FileSystemModule
    import { readFileSync } from 'fs';
    console.log(readFileSync("file.txt", "utf8")) // data
    // FSBuffer.buffer return the file descriptor

    Function: BufferUtility


    • obj : <Object>
    • Returns : <boolean>

    Returns true if obj is a BufferUtility, false otherwise.

    const buf1 = new BufferUtility("a BufferUtility");
    const buf2 = Buffer.from("a Node Buffer");
    // true
    // false

    byteLength(string[, encoding])


    Class: BufferUtility

    new BufferUtility([data[, opts]])

    • data : <String> | <Array> | <Buffer> | <Uint8Array> | <Number> A property determinate the value of the BufferUtility. Default: undefined (empty)
    • opts : <Object> Set of configurable options to set on the Buffer. Can have the following fields:
      • module : <Module> The module used by the Buffer. Default: <Uint8ArrayModule>.
      • maxArrayLength : <Number> The max length an ArrayBuffer can take. Default: buffer.kMaxLength.
      • returnAsBigIntIfOverflow: <Boolean> Return a BigInt for read functions if value is under Number.MIN_SAFE_INTEGER or greater than Number.MAX_SAFE_INTEGER. Default: true.
      • returnAsBigInt: <Boolean> Always return a BigInt for read functions (override returnAsBigIntIfOverflow). Default: false.
      • offset : <Number> The forced start offset of the buffer source. Default: 0.
      • length : <Number> The forced length of the buffer source. Default: buf.length.
    • Returns : <BufferUtility>

    Create a new BufferUtility instance from data and opts properties

    const buf1 = new BufferUtility(); // Empty buf
    const buf2 = new BufferUtility("test"); // Buf with test in bytes
    const buf3 = new BufferUtility(64); // Alloc 64 bytes
    const buf4 = new BufferUtility([54, 76]); // Buf with bytes 54 and 76

    More documentation

    More documentation on this readme will come soon, they are approximately the same as the version 2. You can check them here

    read7BitEncodedInt/read7BitEncodedInt64/write7BitEncodedInt/write7BitEncodedInt64 is replaced by readULEB128/writeULEB128/readSLEB128/writeSLEB128


    npm i bufferutility

    DownloadsWeekly Downloads






    Unpacked Size

    91.4 kB

    Total Files


    Last publish


    • pharuxtan