Buffer
The Buffer ↗ API in Node.js is one of the most commonly used Node.js APIs for manipulating binary data. Every Buffer instance extends from the standard Uint8Array ↗ class, but adds a range of unique capabilities such as built-in base64 and hex encoding/decoding, byte-order manipulation, and encoding-aware substring searching.
import { Buffer } from "node:buffer";
const buf = Buffer.from("hello world", "utf8");
console.log(buf.toString("hex"));// Prints: 68656c6c6f20776f726c64console.log(buf.toString("base64"));// Prints: aGVsbG8gd29ybGQ=A Buffer extends from Uint8Array. Therefore, it can be used in any Workers API that currently accepts Uint8Array, such as creating a new Response:
const response = new Response(Buffer.from("hello world"));You can also use the Buffer API when interacting with streams:
const writable = getWritableStreamSomehow();const writer = writable.getWriter();writer.write(Buffer.from("hello world"));One key difference between the Workers implementation of Buffer and the Node.js
implementation is that some methods of creating a Buffer in Node.js will allocate
those from a global memory pool as a performance optimization. The Workers implementation
does not use a memory pool and all Buffer instances are allocated independently.
Further, in Node.js it is possible to allocate a Buffer with uninitialized memory
using the Buffer.allocUnsafe() method. This is not supported in Workers and Buffer
instances are always initialized so that the Buffer is always filled
with null bytes (0x00) when allocated.
Refer to the Node.js documentation for Buffer ↗ for more information.
Was this helpful?
- Resources
- API
- New to Cloudflare?
- Directory
- Sponsorships
- Open Source
- Support
- Help Center
- System Status
- Compliance
- GDPR
- Company
- cloudflare.com
- Our team
- Careers
- © 2025 Cloudflare, Inc.
- Privacy Policy
- Terms of Use
- Report Security Issues
- Trademark