1.0.0 • Published 2 years ago

base16384 v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Base16384

downloads npm GitHub

A unicode-based encoding scheme that presents binary data (sequence of 8-bit bytes) in sequences of 14-bit printable Chinese characters. It saves 17% space compared to base64.

Inspired by fumiama/base16384.

Description

Base16384 uses 16384 (214) Chinese characters (from \u4E00 to \u8DFF) to represent binary data.

If the length of the binary data is not a multiple of 7, we will add a \u3D0x (where x is the remainder modulo 7) after the output.

Comparison

Base64Base16384
Overhead33%14%
Charset[0-9a-zA-Z+/][\u4E00-\u8DFF]
ExampleRXhhbXBsZQ==彞吖菁穥㴀

Usage

import { decode, encode } from 'base16384'

const buffer = encode('Example') // Uint16Array
new TextDecoder().decode(decode(buffer)) // 'Example'

API

encode(data)

  • data: string | Uint8Array original binary data
  • returns: Uint16Array base16384-encoded data

Encode binary data to base16384.

decode(data)

  • data: string | Uint16Array base16384-encoded data
  • returns: Uint8Array original binary data

Decode base16384 to binary data.

1.0.0

2 years ago

0.1.0

2 years ago

0.0.1

2 years ago