upvote
Is reserving 6 bits really that bad?

You can use different encodings based on context, just like with a random blob of bytes.

reply
You aren't supposed to store the hyphens, and that's the same for all versions.
reply
What if I want an ID in the URL? Parse it back and forth? And what if for example, nodejs's UUID api only gives me the string representation of the ID?
reply
To minimize the storage space while having a URL-safe representation, yeah you'd want to serialise/deserialise on the boundary of presenting it to API consumers. I think the same for any ID that has an efficient binary representation as well as needing to represent it in ASCII.
reply