Implements Node-style Buffer's on the browser with minimal overhead
This package was originally created in 2020 under the belief that the standard buffer
npm package was too supportive of legacy browsers, and under-utilized native browser features. buffer-lite
is able to achieve zero dependencies while still remaining performant by...
- Using the global
atob
andbtoa
functions for base-64 conversion - Using the native
TextEncoder
andTextDecoder
classes for utf8 conversion - Using the magic of spread-operators to eliminate
String.fromCharCode
loops (for small buffers) during text encoding.
At the time of writing, buffer-lite
is feature-compatible with NodeJS v20.7.0. (It even has base64url
support!) However, it only provides the Buffer
class, and does not provide the other functions/constants provided by node:buffer
. It also currently doesn't implement the inspect
method.
ES2017. This means that despite implementing the read/write bigint methods, this package can be used in environments that don't have bigints. However, errors will be thrown if you attempt to use said methods in an environment which doesn't have a global BigInt
function.