ULID Генератор

Опции генерации ULID

Сгенерированные ULID

Декодер и валидатор ULID

Об ULID

ULID (Universally Unique Lexicographically Sortable Identifier) — это 128-битный идентификатор с точностью до миллисекунды и возможностью лексикографической сортировки.

Структура ULID

Формат ULID (26 символов):

01AN4Z07BY79KA1307SR9X4MV3
  • Временная метка: 48-bit (10 chars)
  • Случайность: 80-bit (16 chars)
  • Кодировка: Crockford Base32
  • Регистронезависимый, безопасный для URL
Преимущества ULID
  • 📅 Хронологическая сортировка
  • 🔗 URL-безопасные символы
  • 🎯 Регистронезависимый
  • Без спецсимволов
  • 🔄 Монотонный порядок
Частые случаи использования
  • 🗄️ Записи в БД
  • 📊 Event Sourcing
  • 📋 Записи логов
  • 🔗 Ресурсы API
  • 📱 Мобильные приложения
Быстрые действия

Профессиональный генератор ULID — лексикографически сортируемые идентификаторы

Генерируйте ULID (Universally Unique Lexicographically Sortable Identifiers) с точностью до миллисекунды и возможностью естественной сортировки. Идеально для распределённых систем, баз данных и приложений, требующих хронологического порядка.

Что такое ULID?

ULID — это спецификация 128-битного идентификатора, сочетающая уникальность UUID с преимуществами хронологического упорядочивания временных меток. В отличие от UUID, ULID лексикографически сортируемы, что делает их идеальными для данных временных рядов и индексации баз данных.

Особенности ULID

  • 128-битная совместимость с хранением UUID
  • 1.21e+24 уникальных ULID в миллисекунду
  • Лексикографически сортируемы хронологически
  • Канонически кодируются как строка из 26 символов
  • Используют Crockford Base32 для лучшей читаемости
  • Регистронезависимы и безопасны для URL
  • Без специальных символов (-, _, и т.д.)

Сравнение ULID и UUID

  • Сортировка: ULID естественно сортируемы, UUID — нет
  • Временная метка: ULID включают миллисекундную метку, большинство UUID — нет
  • Читаемость: ULID используют Base32, UUID — шестнадцатеричные числа
  • Длина: ULID — 26 символов, UUID — 36 символов
  • Производительность: ULID обеспечивают лучшую индексацию в базах данных

Лучшие практики использования ULID

  • Используйте ULID для данных временных рядов и event sourcing
  • Идеальны для первичных ключей БД с хронологическим порядком
  • Подходят для распределённых систем с несколькими генераторами
  • Храните в бинарном формате (128 бит) для оптимальной производительности
  • Используйте канонический формат в верхнем регистре для согласованности
  • Рассмотрите монотонные ULID для генерации в одну миллисекунду

Применение ULID

  • Первичные ключи БД с естественным упорядочиванием
  • Event sourcing и журналы аудита
  • Системы агрегации и анализа логов
  • Идентификаторы корреляции в распределённых системах
  • Идентификация ресурсов API
  • Офлайн-синхронизация мобильных приложений

Вопросы про ULID

Оба 128-битные уникальные ID. Ключевое отличие — ULID сортируются лексикографически по времени — новые ID идут после старых. Ещё они короче (26 символов против 36) и используют Base32 вместо hex. Удобно, когда нужен порядок по времени создания.

Когда важен порядок. Event-логи, аудит, записи в БД, где иначе пришлось бы добавлять колонку "created_at" для сортировки. ULID даёт это бесплатно. Ещё приятнее в URL — без дефисов, регистронезависимые.

Да, оба по 128 бит. Большинство ORM умеют конвертировать. Только при хранении как UUID теряется преимущество сортировки — другой порядок байтов.

Миллисекундная. Диапазон — с 1970 до примерно 10889 года, так что хватит надолго.