This immodestly claims to be the fastest in-browser utf-8 safe Base64
decoding library. If you can beat it in the latest version of Chrome, please
send a pull request :).
I built it as part of the Superhuman email client,
as a significant portion of our CPU-burn goes into Base64 parsing.
It's based on mythic work by DRDigit (Vassilis Petroulias). (I say mythic,
because its origins are shrouded in mystery), but uses modern browser
features (namely TextEncoder
, TextDecoder
, Uint8Array
, and
ArrayBuffer
) to beat the original by a very healthy multiplier.
Installation
npm install fast64
Usage
var fast64 = require('base64');
base64 = fast64.encode(string);
string = fast64.decode(base64);
uint8Array = fast64.decode(base64, {uint8Array:true});
base64 = fast64.urlencode(string);
string = fast64.urldecode(base64);
uint8Array = fast64.urldecode(base64, {uint8Array:true});
Testing
If you want to develop this package, you can run the tests in-browser:
npm install
open test/test.html