Socket
Socket
Sign inDemoInstall

typedarray-to-buffer

Package Overview
Dependencies
0
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

typedarray-to-buffer

Convert a typed array to a Buffer without a copy


Version published
Maintainers
1
Weekly downloads
15,374,050
decreased by-6.79%

Weekly downloads

Package description

What is typedarray-to-buffer?

The typedarray-to-buffer npm package is a simple utility that converts a TypedArray or ArrayBuffer to a Node.js Buffer without copying the underlying memory. It's particularly useful when you need to work with Node.js buffers but are starting with a TypedArray (like Uint8Array) or an ArrayBuffer that you've obtained from a different context, such as the Web API or another library that doesn't use Node.js buffers.

What are typedarray-to-buffer's main functionalities?

Convert TypedArray to Buffer

This feature allows you to convert a TypedArray, such as Uint8Array, to a Node.js Buffer instance. The conversion is done without copying the data, making it a fast operation.

var toBuffer = require('typedarray-to-buffer');
var uint8array = new Uint8Array([1, 2, 3]);
var buffer = toBuffer(uint8array);

Other packages similar to typedarray-to-buffer

Readme

Source

typedarray-to-buffer travis npm downloads javascript style guide

Convert a typed array to a Buffer without a copy.

saucelabs

Say you're using the 'buffer' module on npm, or browserify and you're working with lots of binary data.

Unfortunately, sometimes the browser or someone else's API gives you a typed array like Uint8Array to work with and you need to convert it to a Buffer. What do you do?

Of course: Buffer.from(uint8array)

But, alas, every time you do Buffer.from(uint8array) the entire array gets copied. The Buffer constructor does a copy; this is defined by the node docs and the 'buffer' module matches the node API exactly.

So, how can we avoid this expensive copy in performance critical applications?

Simply use this module, of course!

If you have an ArrayBuffer, you don't need this module, because Buffer.from(arrayBuffer) is already efficient.

install

npm install typedarray-to-buffer

usage

To convert a typed array to a Buffer without a copy, do this:

var toBuffer = require('typedarray-to-buffer')

var arr = new Uint8Array([1, 2, 3])
arr = toBuffer(arr)

// arr is a buffer now!

arr.toString()  // '\u0001\u0002\u0003'
arr.readUInt16BE(0)  // 258

how it works

If the browser supports typed arrays, then toBuffer will augment the typed array you pass in with the Buffer methods and return it. See how does Buffer work? for more about how augmentation works.

This module uses the typed array's underlying ArrayBuffer to back the new Buffer. This respects the "view" on the ArrayBuffer, i.e. byteOffset and byteLength. In other words, if you do toBuffer(new Uint32Array([1, 2, 3])), then the new Buffer will contain [1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0], not [1, 2, 3]. And it still doesn't require a copy.

If the browser doesn't support typed arrays, then toBuffer will create a new Buffer object, copy the data into it, and return it. There's no simple performance optimization we can do for old browsers. Oh well.

If this module is used in node, then it will just call Buffer.from. This is just for the convenience of modules that work in both node and the browser.

license

MIT. Copyright (C) Feross Aboukhadijeh.

Keywords

FAQs

Last updated on 23 Nov 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc