CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-buffer

Node.js Buffer API, for the browser

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

Buffer

Buffer provides a browser-compatible implementation of Node.js's Buffer API, enabling developers to manipulate binary data effectively in browser environments. It offers a complete Buffer class that extends Uint8Array with all Node.js Buffer methods including read/write operations for various data types, encoding/decoding capabilities, and buffer manipulation functions.

Package Information

  • Package Name: buffer
  • Package Type: npm
  • Language: JavaScript with TypeScript definitions
  • Installation: npm install buffer

Core Imports

const { Buffer, SlowBuffer, INSPECT_MAX_BYTES, kMaxLength } = require('buffer');

ESM:

import { Buffer, SlowBuffer, INSPECT_MAX_BYTES, kMaxLength } from 'buffer';

For explicit npm module usage (bypassing Node.js core):

const { Buffer, SlowBuffer, INSPECT_MAX_BYTES, kMaxLength } = require('buffer/');

Basic Usage

import { Buffer } from 'buffer';

// Create buffers in different ways
const buf1 = Buffer.from('hello world', 'utf8');
const buf2 = Buffer.alloc(10);
const buf3 = Buffer.allocUnsafe(10);

// Basic operations
console.log(buf1.toString()); // 'hello world'
console.log(buf1.length); // 11

// Read and write operations
buf2.writeUInt8(42, 0);
const value = buf2.readUInt8(0); // 42

// Buffer manipulation
const combined = Buffer.concat([buf1, buf2]);
const slice = buf1.slice(0, 5); // Buffer containing 'hello'

Architecture

Buffer is built around several key components:

  • Uint8Array Extension: Buffer extends Uint8Array and modifies the prototype to add Node.js-compatible methods
  • Static Methods: Creation and utility functions (from, alloc, concat, compare, etc.)
  • Instance Methods: Binary data manipulation, conversion, and comparison operations
  • Encoding Support: Comprehensive text encoding/decoding (utf8, ascii, base64, hex, etc.)
  • Type Safety: Full TypeScript definitions for all APIs

Capabilities

Buffer Creation

Core buffer creation functionality with various initialization options. Essential for all buffer operations and memory allocation.

// Constructor variants
function Buffer(size: number): Buffer;
function Buffer(string: string, encoding?: string): Buffer;
function Buffer(array: number[]): Buffer;
function Buffer(buffer: Buffer): Buffer;
function Buffer(arrayBuffer: ArrayBuffer): Buffer;

// Static creation methods
Buffer.alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer;
Buffer.allocUnsafe(size: number): Buffer;
Buffer.allocUnsafeSlow(size: number): Buffer;
Buffer.from(value: string | number[] | Buffer | ArrayBuffer, encodingOrOffset?: string | number, length?: number): Buffer;

Buffer Creation

Data Reading and Writing

Binary data read/write operations supporting multiple data types and byte orders. Critical for binary protocol implementation and data serialization.

// Unsigned integer operations
readUInt8(offset: number, noAssert?: boolean): number;
writeUInt8(value: number, offset: number, noAssert?: boolean): number;
readUInt16LE(offset: number, noAssert?: boolean): number;
writeUInt16LE(value: number, offset: number, noAssert?: boolean): number;
readUInt32LE(offset: number, noAssert?: boolean): number;
writeUInt32LE(value: number, offset: number, noAssert?: boolean): number;

// Signed integer operations
readInt8(offset: number, noAssert?: boolean): number;
writeInt8(value: number, offset: number, noAssert?: boolean): number;

// Floating point operations
readFloatLE(offset: number, noAssert?: boolean): number;
writeFloatLE(value: number, offset: number, noAssert?: boolean): number;
readDoubleLE(offset: number, noAssert?: boolean): number;
writeDoubleLE(value: number, offset: number, noAssert?: boolean): number;

Data Reading and Writing

String and Encoding Operations

Text encoding/decoding and string conversion with support for multiple character encodings. Fundamental for text processing and protocol handling.

// String conversion
toString(encoding?: string, start?: number, end?: number): string;
write(string: string, offset?: number, length?: number, encoding?: string): number;

// Encoding utilities
Buffer.isEncoding(encoding: string): boolean;
Buffer.byteLength(string: string, encoding?: string): number;

String and Encoding Operations

Buffer Manipulation

Buffer copying, slicing, filling, and comparison operations. Essential for buffer processing and data management workflows.

// Manipulation methods
copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
slice(start?: number, end?: number): Buffer;
fill(value: any, offset?: number, end?: number, encoding?: string): Buffer;

// Comparison and search
equals(otherBuffer: Buffer): boolean;
compare(target: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number;
indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean;

// Static utilities
Buffer.concat(list: Buffer[], totalLength?: number): Buffer;
Buffer.compare(buf1: Buffer, buf2: Buffer): number;

Buffer Manipulation

Types

class Buffer extends Uint8Array {
  length: number;
  buffer: ArrayBuffer;
  byteOffset: number;
}

interface BufferConstructor {
  poolSize: number;
  TYPED_ARRAY_SUPPORT: boolean;
  isBuffer(obj: any): obj is Buffer;
}

// Constants
const INSPECT_MAX_BYTES: number;
const kMaxLength: number;

Supported Encodings

  • 'ascii' - ASCII encoding
  • 'utf8', 'utf-8' - UTF-8 encoding (default)
  • 'latin1', 'binary' - Latin1/binary encoding
  • 'base64' - Base64 encoding
  • 'hex' - Hexadecimal encoding
  • 'ucs2', 'ucs-2', 'utf16le', 'utf-16le' - UTF-16 little endian
Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/buffer@6.0.x
Publish Source
CLI
Badge
tessl/npm-buffer badge