The Buffer module, used in BrowserFS.
npm install bfs-buffer* Space-efficient binary representation across browsers.
* ArrayBuffer in modern browsers
* CanvasPixelArray in older browsers that do not support typed arrays, but support the canvas.
* Array of 32-bit ints in older browsers without the above.
* Supports the entirety of the NodeJS Buffer API! (including string encoding)
* ...with a few exceptions, due to browser limitations (see below).
* Well-tested! Passes all of Node's Buffer tests.
* The unit tests are located in the BrowserFS repository.
This module can be used with Browserify in place of its default Buffer module!
Here's the relevant configuration:
``{js}`
{
builtins:
{
"buffer": require.resolve('bfs-buffer')
},
insertGlobalVars: {
"Buffer": function() { return "require('bfs-buffer').Buffer" }
}
}
* Does not support array indexing. e.g. you cannot do buff[0] = 3.Buffer
* Browsers do not let you implement custom arrays, and merely setting the prototype of to Uint8Array, as in the official Node implementation of Buffer`, is not portable across browsers.