ULID Generator

Создание универсальных уникальных лексикографически сортируемых идентификаторов с высокой производительностью

0
ULIDs Generated
0
ULIDs/Second
0
Active Users

Генерировать ULID

Быстрые, эффективные и сортируемые идентификаторы для современных приложений

Все данные остаются в вашем браузере. Ничего не отправляется на сервер.

Chưa có ULID nào được tạo

Параметры

Đã sao chép vào bộ nhớ tạm!

ULID против UUID

Почему ULID лучше UUID во многих ситуациях?

ULID

Рекомендуется

Сортировка по времени

Первые 10 байт - это время Unix, которое естественно сортируется

Base32 Крокфорда

Более эффективное кодирование, нечувствительное к регистру, без специальных символов

Опция монотонности

Может генерировать монотонно возрастающие значения для одной и той же метки времени

Читаемость

Легче отлаживать и читать в логах и базах данных

Пример ULID:

01ARZ3NDEKTSV4RRFFQ69G5FAV

UUID

Не сортируется по времени

Случайные байты не обеспечивают никаких гарантий упорядочивания

Шестнадцатеричное кодирование

Менее эффективно, требует больше символов для той же информации

Нет монотонности

Нет встроенного механизма для монотонно возрастающих значений

Менее читаемый

Сложнее различать и идентифицировать в логах и базах данных

Пример UUID:

123e4567-e89b-12d3-a456-426614174000

Сравнение производительности

Скорость генерации ULID быстрее в 1.5 раза
ULID: ~2.5 млн/сек UUID: ~1.7 млн/сек
Размер хранения ULID меньше на 27%
ULID: 26 символов UUID: 36 символов
Эффективность кодирования ULID эффективнее на 20%
ULID: 5 бит/символ (Base32) UUID: 4 бит/символ (Hex)

Примеры кода

Вот несколько примеров кода, чтобы помочь вам начать

JavaScript
// Node.js / Браузер
// Установка: npm install @ulid/javascript

import { ulid } from '@ulid/javascript';

// Сгенерировать новый ULID
const myUlid = ulid(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"

// Создать ULID с пользовательской временной меткой (миллисекунды)
const customTimestamp = 1616239022000;
const ulidWithCustomTime = ulid(customTimestamp);

// Создать монотонно возрастающие ULID (для нескольких ID в одной мс)
import { monotonicFactory } from '@ulid/javascript';
const monotonic = monotonicFactory();
const ulid1 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R4"
const ulid2 = monotonic(); // "01F8MECHZX3TBDSZ7XR8H8J1R5" (увеличенный)

// Извлечь временную метку из ULID
const timestamp = ulid.decode(myUlid).time;
console.log(new Date(timestamp).toISOString());

JavaScript: npm install @ulid/javascript

Buy me a coffee