tep / encoding-base56

toolman.org/encoding/base56 - Go library to encode/decode base56 values

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

base56 MIT License GitHub Release GoDoc Go Report Card

import "toolman.org/encoding/base56"

Install

  go get toolman.org/encoding/base56

Overview

Package base56 provides functions for encoding/decoding uint64 values as short, easily digestible, base56 strings. For example, the Std encoding transforms the uint64 value 1540840132 into the string "2nfvKM".

For compatibility with other implementions, this package supports three separate and distinct base56 character sets through the package level, Encoding variables Std, Alt and Py3. Each of these Encodings leverage only 7-bit clean (ASCII) characters.

The Std Encoding employs the original character set used by this package and is composed of the numerals 0-9 followed by all upper case characters except for 'D' (0x44), 'I' (0x49), 'O' (0x4f), and 'Q' (0x51) and then all lower case characters except for 'i' (0x69) and 'o' (0x6f).

The Alt Encoding is compatible with PHP and Java implementations and is defined as the numerals 2-9 followed by all lower case characters except for 'l' (0x6c) and 'o' (0x6f) and then all upper case characters except for 'I' (0x49) and 'O' (0x4f).

The Py3 Encoding is compatible with the Python-3 implementation and is defined as the numerals 2-9 followed by all upper case characters except for 'I' (0x49) and 'O' (0x4f) and then all lower case characters except for 'l' (0x6c) and 'o' (0x6f).

Note, the Alt and Py3 Encodings are identical except for the order of character classes. Alt is numerals->lowercase->uppercase while Py3 is numerals->uppercase->lowercase.

About

toolman.org/encoding/base56 - Go library to encode/decode base56 values

License:MIT License


Languages

Language:Go 100.0%