Socket
Socket
Sign inDemoInstall

@superhuman/fast64

Package Overview
Dependencies
Maintainers
12
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@superhuman/fast64

The fastest in-browser base64 library


Version published
Weekly downloads
98
increased by4.26%
Maintainers
12
Weekly downloads
 
Created
Source

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');

// For standard base64
base64 = fast64.encode(string);
string = fast64.decode(base64);
// If you want to decode till Uint8Array and skip the UTF8 decoding.
// This is useful in cases where you need Uint8Array for eg. create blob out of Uint8Array result.
uint8Array = fast64.decode(base64, {uint8Array:true});


// For URL-safe base64 (-_ in place of +/, and no padding)
base64 = fast64.urlencode(string);
string = fast64.urldecode(base64);
// If you want to decode till Uint8Array and skip the UTF8 decoding.
// This is useful in cases where you need Uint8Array for eg. create blob out of Uint8Array result.
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/index.html

FAQs

Package last updated on 28 Oct 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc