Генератор UUID · форматULID — сортируемый идентификатор

ULID — 26 символов Crockford Base32: первые 10 — время в миллисекундах, остальные 16 — 80 случайных бит. Строки сортируются в порядке создания, как UUID v7, а алфавит без I, L, O и U не путается при чтении вслух и переписывании руками.

01Генератор02Устройство03Сравнение04Вопросы05Похожие
01

Генератор ULID

формат выбран — все настройки и проверка в полном генераторе
Количество
Нажмите «Сгенерировать» — здесь появятся идентификаторы.
Все форматы, проверка и разбор UUID — в полном генераторе →
02

Как устроен: ULID

Образец01ARYZ6S41TSV4RRFFQ69G5FAV
01ARYZ6S41
время: 1469918176385 мс — 30.07.2016 22:36:16 UTC
TSV4RRFFQ69G5FAV
80 случайных бит
0–9 A–Z без I L O U
Crockford Base32, регистр не важен

Когда применять

  • Ключ, который удобно сортировать по самому значению, — события, журналы, очереди.
  • Там, где 36 символов UUID длинны, а время внутри нужно.
  • Если база хранит идентификаторы в колонке uuid — лучше v7: ULID туда без перевода не ляжет.

Чем отличается от соседей

Против UUID v7: устроены почти одинаково — 48 бит времени впереди и случайность после, — но v7 стандартизован в RFC 9562, а ULID — отдельная спецификация. ULID короче в записи (26 против 36) и читается без путаницы букв. Против NanoID: ULID сортируется и раскрывает время создания, NanoID — нет. Наш генератор монотонен: пачка внутри одной миллисекунды идёт по возрастанию.

03

Сравнение форматов

ФорматДлинаСлучайностьВремя внутриСортируетсяСтандарт
UUID v436122 битанетнетRFC 9562
UUID v73674 битамс, 48 битдаRFC 9562
UUID v136узел и счётчик100 нс, 60 битнетRFC 9562, устаревший
Nil UUID36нетнет—RFC 9562
NanoID21126 битнетнетбиблиотека, не RFC
ULID2680 битмс, 48 битдаспецификация ULID, не RFC
04

Частые вопросы

ULID — 26 символов Crockford Base32, первые десять из которых — время в миллисекундах, поэтому значения сортируются по созданию. UUID v4 — 36 символов и случайный порядок, UUID v7 устроен как ULID, но записан шестнадцатерично и стандартизован в RFC 9562. Оба формата занимают 128 бит, отличаются запись и наличие стандарта.

Обновлено

«» добавлен в избранное