Besides being wide spread in the cryptocurrency world, base58 is generally great for data humans interact with manually (url shorteners, password reset tokens etc).
Usual question: why has this to be in the standard library?
Maybe it doesn't, I'm honestly not quite sure.
Pros:
Fits well with the existing base32 and base64 packages.
Useful for web programming and generally most usecases for base32
Unlikely to be maintenance burden
Used in security sensitive contexts, where it is nice to avoid third-party code.
Shorter than base32
Cons:
Not as commonly used as base32
There are a small number of variants, but maybe only one is necessary
In terms of usecases you could list everything base32 is used for. In my case it came up in a security sensitive package where we are hesitant to add third party dependencies for trivial code, so we would probably end up creating yet another base58 package otherwise (there are about 50 open source implementations already and probably a lot more closed source ones and package-private implementations).
I expect that this is a somewhat common scenario given that base58 is a good choice for codes and ids that are checked/typed/copied by users.
Yeah, I don't think we want this in the standard library. The standard library is already arguably bigger than it needs to be, and if anything we'll be removing stuff from it (for Go 2).
Besides being wide spread in the cryptocurrency world, base58 is generally great for data humans interact with manually (url shorteners, password reset tokens etc).
https://en.m.wikipedia.org/wiki/Base58
The text was updated successfully, but these errors were encountered: