uuid58

package module
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 15, 2022 License: MIT Imports: 2 Imported by: 0

README

uuid-base58

Overview

uuid-base58 is a small package to generate short BASE58-string representation of UUID and vice versa.

Example

package main

import (
	"fmt"
	uuid58 "github.com/AlexanderMatveev/go-uuid-base58"
	"github.com/google/uuid"
)

func main() {
	// base58 from UUID
	s, _ := uuid58.ToBase58(uuid.MustParse("c73087da-627a-4f00-8786-fcc4f47db57f"))
	fmt.Println(s) // RbcZUzUfnGugha7DVu3fAE

	// UUID from base58
	u, _ := uuid58.FromBase58("RbcZUzUfnGugha7DVu3fAE")
	fmt.Println(u) // c73087da-627a-4f00-8786-fcc4f47db57f
}

Motivation

The original Bitcoin client source code explains the reasoning behind base58 encoding:

base58.h:

// Why base-58 instead of standard base-64 encoding?
// - Don't want 0OIl characters that look the same in some fonts and
//      could be used to create visually identical looking account numbers.
// - A string with non-alphanumeric characters is not as easily accepted as an account number.
// - E-mail usually won't line-break if there's no punctuation to break at.
// - Doubleclicking selects the whole number as one word if it's all alphanumeric.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FromBase58

func FromBase58(s string) (uuid.UUID, error)

func ToBase58

func ToBase58(u uuid.UUID) (string, error)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL