This project provides the official specification for ULIDs, which are 128-bit identifiers that combine a millisecond-precision timestamp and random data. These identifiers are designed to be lexicographically sortable, ensuring that they maintain a strict chronological sequence for database indexing and time-based sorting.
The specification defines a standard for binary-to-string serialization using a Crockford-inspired Base32 alphabet. This encoding is intended to produce human-readable strings while excluding ambiguous characters to prevent transcription errors.
The technical standards cover monotonic sequencing rules to preserve the order of identifiers created within the same millisecond. It also details the partitioning of the 128-bit identifier into fixed-width segments for timestamps and random data.