UUID v4 isn't large enough to prevent collisions, that is why segment.io created https://github.com/segmentio/ksuid which is 160bit vs the 128bit of a UUIDv4.
Ksuid may be what you want. Pretty much time sortable uuid.
Go implementation: https://github.com/segmentio/ksuid
KSUIDs are fairly popular and missing from your list:
Some UUID alternatives:
- https://github.com/ai/nanoid
There are KSUIDs that aim to satisfy this
A go ref impl: https://github.com/segmentio/ksuid
We use K-Sortable Globally Unique IDs: https://github.com/segmentio/ksuid
Some differences:
128 bit strongly generated payload (instead of 80 bits for ULIDs).
Only 32 bit time precision but that's wall clock time anyway.
Base62 encoded.