Big update!Introducing GitHub Bot Commands. Learn more
Log inBook a demo


Package Overview
File Explorer

Advanced tools


Convert a typed array to a Buffer without a copy


Version published
Weekly downloads
decreased by-0.36%

Weekly downloads



typedarray-to-buffer travis npm downloads javascript style guide

Convert a typed array to a Buffer without a copy.


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.


npm install typedarray-to-buffer


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.


MIT. Copyright (C) Feross Aboukhadijeh.



What is typedarray-to-buffer?

Convert a typed array to a Buffer without a copy

Is typedarray-to-buffer popular?

The npm package typedarray-to-buffer receives a total of 15,191,070 weekly downloads. As such, typedarray-to-buffer popularity was classified as popular.

Is typedarray-to-buffer well maintained?

We found that typedarray-to-buffer demonstrated a not healthy version release cadence and project activity because the last version was released a year ago.It has 1 open source maintainer collaborating on the project.

Last updated on 23 Nov 2020

Did you know?

Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.

Install Socket


Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc