Перейти до вмісту

node:buffer

Buffer і допоміжні засоби для двійкових даних, сумісні з Node.

На цій сторінці
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.

Чи була ця сторінка корисною?