ULID
Dan Tobias (Talk | contribs) (Created page with "{{FormatInfo |formattype=electronic |subcat=Elements of File Formats }} '''ULID''' (Universally Unique Lexicographically Sortable Identifier) is an identifier that's intended ...") |
Dan Tobias (Talk | contribs) |
||
Line 5: | Line 5: | ||
'''ULID''' (Universally Unique Lexicographically Sortable Identifier) is an identifier that's intended to be used in a similar manner to the [[UUID]], where unique identifiers are needed without a central authority to assign them, but unlike UUIDs, they sort properly in the order of creation, because the prefix portion identifies the timestamp (to the millisecond) that a ULID was created, and the rest of the identifier is assigned pseudorandomly, but when more than one ULID is generated in the same process in the same millisecond, successive values are used in order so that they sort properly. | '''ULID''' (Universally Unique Lexicographically Sortable Identifier) is an identifier that's intended to be used in a similar manner to the [[UUID]], where unique identifiers are needed without a central authority to assign them, but unlike UUIDs, they sort properly in the order of creation, because the prefix portion identifies the timestamp (to the millisecond) that a ULID was created, and the rest of the identifier is assigned pseudorandomly, but when more than one ULID is generated in the same process in the same millisecond, successive values are used in order so that they sort properly. | ||
− | String and binary representations are defined. String representations are encoded using | + | String and binary representations are defined. String representations are encoded using a [[Base32]] alphabet of <code>0123456789ABCDEFGHJKMNPQRSTVWXYZ</code>, case-insensitively. String-based ULIDs are 26 characters long, with the first 10 encoding the timestamp (48-bit [[Unix time]] which will work until the year 10889) while binary ones are 16 bytes. |
Sample ULID in string representation: | Sample ULID in string representation: |
Latest revision as of 13:00, 28 May 2019
ULID (Universally Unique Lexicographically Sortable Identifier) is an identifier that's intended to be used in a similar manner to the UUID, where unique identifiers are needed without a central authority to assign them, but unlike UUIDs, they sort properly in the order of creation, because the prefix portion identifies the timestamp (to the millisecond) that a ULID was created, and the rest of the identifier is assigned pseudorandomly, but when more than one ULID is generated in the same process in the same millisecond, successive values are used in order so that they sort properly.
String and binary representations are defined. String representations are encoded using a Base32 alphabet of 0123456789ABCDEFGHJKMNPQRSTVWXYZ
, case-insensitively. String-based ULIDs are 26 characters long, with the first 10 encoding the timestamp (48-bit Unix time which will work until the year 10889) while binary ones are 16 bytes.
Sample ULID in string representation:
01AN4Z07BY79KA1307SR9X4MV3