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
| Export | Kind | Status | Notes |
|---|---|---|---|
Buffer | class | Full | Buffer.alloc(), Buffer.allocUnsafe(), Buffer., 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() | function | Full | Decodes a base64-encoded ASCII string into a Latin-1 string |
btoa() | function | Full | Encodes a Latin-1 string as base64 ASCII |
isAscii() | function | Full | Returns true if every byte’s high bit is clear (the input contains only 7-bit ASCII) |
isUtf8() | function | Full | Returns true if the bytes form a structurally valid UTF-8 sequence (no overlong forms, surrogates, or… |
kMaxLength | property | Full | Largest buffer size representable as a 32-bit JS integer (2^31 - 1) |
kStringMaxLength | property | Full | Largest 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.