A library for generating 22-byte-length, Base62-encoded v4 UUIDs.
UUIDs are great for use as primary keys in relational databases, but they don't look great in URLs. This library makes it easy to generate, encode, and decode Base62 v4 UUIDs that have a guaranteed length of 22 bytes. That way, rather than URLs that look like:
https://example.com/widgets/7af42354-0835-475f-adb5-15fc893526e1
You can have a shorter and friendlier looking URL like:
https://example.com/widgets/3k0dNymf72EzlHEkZLwjhZ
If available in Hex, the package can be installed as:
-
Add
base62_uuid
to your list of dependencies inmix.exs
:def deps do [{:base62_uuid, "~> 2.0.0"}] end
-
Ensure
base62_uuid
is started before your application:def application do [applications: [:base62_uuid]] end
iex> Base62UUID.generate()
"5rljkyCY7vXDv2bPAnCQdL"
iex> Base62UUID.encode("7af42354-0835-475f-adb5-15fc893526e1")
{:ok, "3k0dNymf72EzlHEkZLwjhZ"}
iex> Base62UUID.decode("3k0dNymf72EzlHEkZLwjhZ")
{:ok, "7af42354-0835-475f-adb5-15fc893526e1"}