Skip to main content


Probably the only JavaScript base64 library you’ll ever need!


Encode, decode and validate base64/base64url to string/arraybuffer and vice-versa. Works in Node, Deno and browser.

Node.js CI Deno CI npm version NPM Downloads jsdelivr Codacy Badge MIT License

  • Supports regular base64 and base64url
  • Convert to/from string or arraybuffer
  • Validate / identify base64 and base64url
  • Works in Node.js >=4.0 (both require and import).
  • Works in Deno >=1.16.
  • Works in browsers as standalone, UMD or ES-module.
  • Includes TypeScript typings.
// Encode string as regular base64
const example1enc = base64.fromString("Hellö Wörld, how are you doing today?!");
// > SGVsbMO2IFfDtnJsZCwgaG93IGFyZSB5b3UgZG9pbmcgdG9kYXk/IQ==

// Decode string as regular base64
const example1dec = base64.toString("SGVsbMO2IFfDtnJsZCwgaG93IGFyZSB5b3UgZG9pbmcgdG9kYXk/IQ==");
// > Hellö Wörld, how are you doing today?!

Full documentation available at

Quick Installation

Node.js: npm install @hexagon/base64 --save

Deno: import base64 from "";

For browser/cdn usage, refer to the documentation.

Quick API

  • fromArrayBuffer(buffer, urlMode) - Encodes ArrayBuffer into base64 or base64url if urlMode(optional) is true

  • toArrayBuffer(str, urlMode) - Decodes base64url string (or base64url string if urlMode is true) to ArrayBuffer

  • fromString(str, urlMode) - Encodes String into base64 string(base64url string if urlMode is true)

  • toString(str, urlMode) - Decodes base64 or base64url string to String

  • validate(str, urlMode) - Returns true if String str is valid base64/base64 dependending on urlMode


See Contribution Guide


If you found this library helpful and wish to support its development, consider making a donation through Hexagon’s GitHub Sponsors page. Your generosity ensures the library’s continued development and maintenance.


The underlying code is loosely based on