Перейти к содержимому

node:buffer

Совместимый с Node Buffer и вспомогательные функции для двоичных данных.

На этой странице
Open in ChatGPTOpen in Claude

globalThis.Buffer и экспорт Buffer из node:buffer — один и тот же объект. Буферы — это экземпляры Uint8Array с индексным доступом и стабильным базовым ArrayBuffer.

import { Buffer } from "node:buffer";

const bytes = Buffer.from("hello", "utf8");
console.log(bytes[0]); // 104
console.log(bytes.toString("hex")); // 68656c6c6f
console.log(bytes instanceof Uint8Array); // true

Для создания буферов используйте Buffer.alloc, Buffer.allocUnsafe, Buffer.allocUnsafeSlow и Buffer.from. Вызов Buffer() или new Buffer() по-прежнему работает для совместимости, но выводит предупреждение об устаревании.

Доступны распространённые операции Node, включая compare, copy, equals, fill, includes, indexOf, slice, subarray, write, чтение и запись чисел фиксированной и переменной ширины, чтение и запись BigInt и перестановку байтов.

Поддерживаемые кодировки: utf8, utf16le, latin1, ascii, base64, base64url и hex. utf16be не принимается.

node:buffer также экспортирует Blob, File, SlowBuffer, atob, btoa, isAscii, isUtf8, transcode, константы размеров и связанные вспомогательные функции.

В отличие от Node, реализации allocUnsafe в Elide возвращают заполненную нулями память, а не раскрывают ранее использованные байты.

Reference

Status: Full · 56 of 62 suite tests pass (90.3%) · since 1.1.0

Exports

ExportKindStatusNotes
BufferclassFullBuffer.alloc(), Buffer.allocUnsafe(), Buffer.allocUnsafeSlow(), Buffer.from(), Buffer.isBuffer(), Buffer.isEncoding(), Buffer.byteLength(), Buffer.concat(), Buffer.compare(), length, buffer, byteOffset, compare(), copy(), equals(), fill(), includes(), indexOf(), lastIndexOf(), slice(), subarray(), write(), toString(), toJSON(), readUInt8(), readUInt16BE(), readUInt16LE(), readUInt32BE(), readUInt32LE(), readInt8(), readInt16BE(), readInt16LE(), readInt32BE(), readInt32LE(), readUIntBE(), readUIntLE(), readIntBE(), readIntLE(), readFloatBE(), readFloatLE(), readDoubleBE(), readDoubleLE(), writeUInt8(), writeUInt16BE(), writeUInt16LE(), writeUInt32BE(), writeUInt32LE(), writeInt8(), writeInt16BE(), writeInt16LE(), writeInt32BE(), writeInt32LE(), writeUIntBE(), writeUIntLE(), writeIntBE(), writeIntLE(), writeFloatBE(), writeFloatLE(), writeDoubleBE(), writeDoubleLE(), swap16(), swap32(), swap64()
atob()functionFullDecodes a base64-encoded ASCII string into a Latin-1 string
btoa()functionFullEncodes a Latin-1 string as base64 ASCII
isAscii()functionFullReturns true if every byte’s high bit is clear (the input contains only 7-bit ASCII)
isUtf8()functionFullReturns true if the bytes form a structurally valid UTF-8 sequence (no overlong forms, surrogates, or…
kMaxLengthpropertyFullLargest buffer size representable as a 32-bit JS integer (2^31 - 1)
kStringMaxLengthpropertyFullLargest string length the runtime will allocate (2^31 - 1)

Tests: node-api node:buffer: 56 pass, 6 fail, 0 error, 7 skipped. Failing: test-buffer-alloc.js, test-buffer-constructor-node-modules-paths.js, test-buffer-constructor-node-modules.js, test-buffer-constructor-outside-node-modules.js, test-buffer-indexof.js, test-buffer-pool-untransferable.js.

Была ли эта страница полезной?