cl-ksuid
2017-08-30
K-sortable unique identifiers
cl-ksuid
cl-ksuid implements KSUIDs in Common Lisp. KSUIDs are short (20 byte or 27 base62 character) unique IDs composed of a 32-bit timestamp followed by 128 bits of randomness. Due to the timestamp, they are sortable by creation second. They are described further in A Brief History of the UUID.
E.g. 0puTTYvbQvWBglQicRUWdOdKnt9 or 0pw8wwIBsPD8yLcQS9rBSlIFet0.
KSUIDs may be created with (make-instance 'ksuid); they can be
printed to a character stream so long as *print-readably* is nil;
their bytes may be extracted with the BYTES reader. Finally, a
string may be parsed as a KSUID with STRING-TO-KSUID.