View Source ShortUUID.Builder (ShortUUID v4.1.0)
ShortUUID.Builder is a module for encoding and decoding UUIDs (Universally Unique Identifiers) using various predefined or custom alphabets.
Usage
To create your module, simply use it and optionally provide an alphabet option:
defmodule MyModule do
use ShortUUID.Builder, alphabet: :base58
endThe alphabet option must be one of the predefined alphabets or a custom string (16+ unique characters).
Predefined Alphabets
The following predefined alphabets are available:
:base57_shortuuid- "23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz":base32- "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567":base32_crockford- "0123456789ABCDEFGHJKMNPQRSTVWXYZ":base32_hex- "0123456789ABCDEFGHIJKLMNOPQRSTUV":base32_z- "ybndrfg8ejkmcpqxot1uwisza345h769":base58- "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz":base62- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz":base64- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/":base64_url- "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
Functions
The following functions are available for encoding and decoding UUIDs:
encode/1- Encodes a UUID using the specified or default alphabet.encode!/1- Encodes a UUID using the specified or default alphabet, raising an error on failure.decode/1- Decodes a string into a UUID using the specified or default alphabet.decode!/1- Decodes a string into a UUID using the specified or default alphabet, raising an error on failure.
Example
iex> ShortUUID.encode("550e8400-e29b-41d4-a716-446655440000")
{:ok, "H9cNmGXLEc8NWcZzSThA9S"}
iex> ShortUUID.decode("H9cNmGXLEc8NWcZzSThA9S")
{:ok, "550e8400-e29b-41d4-a716-446655440000"}