1.0.0 • Published 1 year ago

@digitalbazaar/base45 v1.0.0

Weekly downloads
-
License
BSD-3-Clause
Repository
github
Last release
1 year ago

RFC 9285 Base45 Encoder/Decoder (@digitalbazaar/base45)

Encoder/decoder for The Base45 Data Encoding for Node.js and Web browsers

Table of Contents

Background

This library provides an encoder and decoder for RFC 9285 The Base45 Encoding Scheme using an alphabet designed for efficient use in QR codes using Alphanumeric mode. It works in both Node.js and in Web browsers with no dependencies.

Install

  • Node.js >=18 is supported.

To install for Node.js or in a Web project using npm:

npm install @digitalbazaar/base45

To install locally or for development:

git clone https://github.com/digitalbazaar/base45.git
cd base45
npm install

Usage

import {encode, decode} from '@digitalbazaar/base45';

Encoding

  • encode(input])
    • input: Uint8Array - bytes to encode
    • Returns a base45 encoded string.
import {encode} from '@digitalbazaar/base45';

const input1 = Uint8Array([1, 2, 3, 4]);
const encoded1 = encode(input1);
// > X507H0

Decoding

  • decode(input)
    • input: String - string to decode
    • Returns a Uint8Array with the decoded bytes.
import {decode} from '@digitalbazaar/base45';

const input2 = 'X507H0';
const decoded2 = decode(input2);
// > Uint8Array [ 1, 2, 3, 4 ]

String Handling

This library uses Uint8Array for encoder input and decoder output. If conversion to and from strings is needed it can be done with a variety of tools such as TextEncoder and TextDecoder using the Encoding standard.

const input3 = new TextEncoder().encode('abc');
const encoded3 = encode(input3);
// > 0EC92

const decoded4 = decode(encoded3);
const output4 = new TextDecoder().decode(decoded4);
// > abc

Security

  • Processing large inputs could result in high resource usage.

Contribute

Please follow the Bedrock contributing guidelines.

PRs accepted.

If editing the README, please conform to the standard-readme specification.

Commercial Support

Commercial support for this library is available upon request from Digital Bazaar: support@digitalbazaar.com

License

New BSD License (3-clause) © Digital Bazaar

1.0.0

1 year ago