Note: While a variant of base58 is used in Bitcoin and parts of this library take inspiration from that C++ implementation, this package has nothing to do with cryptocurrency.
base58
is simple, zero-dependency Go library that implements a base 58 encoding scheme. The 58 characters it uses are:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
This may or may not be the same set or ordering of characters as other base 58 encoding packages, make sure to double-check if you require interoperability. Generally, these characters were chosen to remove ambiguity (e.g. 0 vs O vs o
, I vs l vs L
) and general complications posed by non-alphanumerics in various contexts when using base 64 encodings.
This encoding is useful when you want something more compact than a hexadecimal encoding, but without standard base64's +
and /
, which can be problematic in user-facing web contexts (e.g. URLs). Similarly, URL-safe base64 variants are more annoying to double click, as -
stops the selection.
In short, you might want something like this in contexts where your encoded data may appear in a URL, or you expect a user to manually copy and paste the encoded data.
Contribution guidelines can be found on our website.