You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We use the npm buffer package to allow our library to use node's Buffer class in the browser.
I think we should stop doing this for a few reasons:
buffer does not appear to be maintained anymore, as it hasn't been updated in ~2 years and has numerous issue and PRs open.
Webpack v4 projects provide an even older version of buffer, and we're unable to do anything about it. This is pretty concerning, as we don't test with this older version.
Most of our Buffer usage seems to be encoding and decoding base64. We should be able to do this in the browser without Buffer.
Suggestions
Instead of relying on a browser Buffer implementation, we could make better use of Uint8Array and Dataview, which are supported in both node and browser. Some things will still require Buffer usage in node (like base64 encoding), but we can investigate ways to have an alternative code path for browsers.
There are a few public APIs which reference Buffer, so changing these would likely have to wait for a major release of the library.
The text was updated successfully, but these errors were encountered:
@algoanne require is a bit of a strong word, but using Buffer for base64 encoding is likely the easiest/most efficient option for node, so that's why I suggested continuing to use it there. It is however not a strict requirement.
Summary
We use the npm buffer package to allow our library to use node's
Buffer
class in the browser.I think we should stop doing this for a few reasons:
Buffer
usage seems to be encoding and decoding base64. We should be able to do this in the browser withoutBuffer
.Suggestions
Instead of relying on a browser
Buffer
implementation, we could make better use ofUint8Array
andDataview
, which are supported in both node and browser. Some things will still requireBuffer
usage in node (like base64 encoding), but we can investigate ways to have an alternative code path for browsers.There are a few public APIs which reference
Buffer
, so changing these would likely have to wait for a major release of the library.The text was updated successfully, but these errors were encountered: