Luckily it looks like the author has already written up his thoughts on the differences[2].
[1] https://github.com/ulid/spec [2] https://github.com/segmentio/ksuid/issues/8
Luckily it looks like the author has already written up his thoughts on the differences[2].
[1] https://github.com/ulid/spec [2] https://github.com/segmentio/ksuid/issues/8
> UUID v1/v2 is impractical in many environments, as it requires access to a unique, stable MAC address
RFC 4122 Section 4.1.6 "Node"
> For systems with no IEEE address, a randomly or pseudo-randomly generated value may be used; see Section 4.5. The multicast bit must be set in such addresses, in order that they will never conflict with addresses obtained from network cards.
There is no requirement of "a unique, stable MAC address" in UUIDv1, and most UUID API should allow overriding the node (and probably clock_seq) fields.
> Canonically encoded as a 26 character string, as opposed to the 36 character UUID
> Uses Crockford's base32 for better efficiency and readability (5 bits per character)
> Case insensitive
> No special characters (URL safe)
You could just encode your UUID in base32…
> correctly detects and handles the same millisecond
I mean, that's worse than UUIDv1 by 3 orders of magnitude.
The lexical ordering is not a lie at least, so there's that.