ULID Generator
Создание универсальных уникальных лексикографически сортируемых идентификаторов с высокой производительностью
Быстрая Генерация ULID
Сравнение и Патчинг JSON Онлайн
Быстрые, эффективные и сортируемые идентификаторы для современных приложений
Начать
Генерировать ULID
Быстрые, эффективные и сортируемые идентификаторы для современных приложений
Все данные остаются в вашем браузере. Ничего не отправляется на сервер.
Options
ULID против UUID
Почему ULID лучше UUID во многих ситуациях?
ULID
РекомендуетсяСортировка по времени
Первые 10 байт - это время Unix, которое естественно сортируется
Base32 Крокфорда
Более эффективное кодирование, нечувствительное к регистру, без специальных символов
Опция монотонности
Может генерировать монотонно возрастающие значения для одной и той же метки времени
Читаемость
Легче отлаживать и читать в логах и базах данных
Пример ULID:
UUID
Не сортируется по времени
Случайные байты не обеспечивают никаких гарантий упорядочивания
Шестнадцатеричное кодирование
Менее эффективно, требует больше символов для той же информации
Нет монотонности
Нет встроенного механизма для монотонно возрастающих значений
Менее читаемый
Сложнее различать и идентифицировать в логах и базах данных
Пример UUID:
Сравнение производительности
Примеры кода
Вот несколько примеров кода, чтобы помочь вам начать
// 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
Декодировать ULID
Извлечение временной метки и случайности из ULID
Validation Results
Конвертер UUID / ULID
Конвертация между форматами UUID и ULID
Примечание: При преобразовании UUID в ULID будет использоваться текущая временная метка. Это означает, что один и тот же UUID будет создавать разные ULID в разное время.
ULID Comparator
Результаты сравнения
Анализ компонентов
Entropy Difference
Character-by-Character Diff
Timestamp Part
Random Part
Detailed Diff View
Position | |
First ULID | |
Second ULID | |
Difference |
Конвертер временных меток
Результаты конвертации
JSON Инструменты
Утилиты для работы с данными JSON
Тестер JSONPath
Test and validate JSONPath expressions against your JSON data.
JSON Patch
Apply RFC 6902 JSON Patch operations to transform JSON documents.
Генератор JSON Patch
Generate JSON Patch documents by comparing two JSON objects.
Сравнение JSON
Compare two JSON objects and visualize the differences in multiple formats.
Test and validate JSONPath expressions against your JSON data.
JSON Data
JSONPath Expression
Result
JSONPath Reference
Basic Syntax
Symbol | Description |
---|---|
$ | Root object |
@ | Current object |
. | Child operator |
.. | Recursive descent |
* | Wildcard. All objects/elements |
[] | Subscript operator |
[,] | Union operator |
Examples
JSONPath | Description |
---|---|
$.store.book[0] | First book |
$.store.book[-1] | Last book |
$.store.book[0,1] | First two books |
$.store.book[*] | All books |
$.store.book[*].author | All authors |
$.store.book[?(@.price < 10)] | Books less than 10 dollars |
$..book[?(@.isbn)] | All books with ISBN |
Generate JSON Patch documents by comparing two JSON objects.
Source JSON
Target JSON
Generated JSON Patch
Verification
JSON Patch Operations (RFC 6902)
Operation | Description |
---|---|
add | Adds a value to an object or inserts it into an array |
remove | Removes a value from an object or array |
replace | Replaces a value |
Operation | Description |
---|---|
move | Moves a value from one location to another |
copy | Copies a value from one location to another |
test | Tests that a value at the target location is equal to a specified value |