Générateur de ULID
Générez en masse des ULID, des identifiants triables par ordre chronologique qui font office d'alternative aux UUID.
Astuces d'utilisation
- Les 10 premiers caractères d'un ULID encodent un horodatage (l'instant de création), tandis que les 16 restants sont aléatoires. Sauf si deux ULID sont générés dans la même milliseconde, un simple tri en tant que chaînes de caractères suffit à retrouver l'ordre de création.
- Utiliser un UUID v4 entièrement aléatoire comme clé primaire de base de données tend à fragmenter les index B-tree, car les nouvelles lignes sont insérées à des positions aléatoires. Comme les ULID sont triés approximativement par ordre chronologique, les nouvelles lignes s'ajoutent plutôt vers la fin de l'index, ce qui atténue ce problème.
- Un ULID est représenté par 26 caractères en Base32 de Crockford (l'alphabet de 32 caractères `0`-`9` et `A`-`Z` dont on retire les lettres I, L, O et U, faciles à confondre), ce qui le rend plus court qu'un UUID (36 caractères avec les tirets) et sûr à utiliser dans des environnements insensibles à la casse.
- Pour comparer les formats avec Nano ID et UUID v4, consultez le tableau comparatif disponible sur notre outil jumeau, la page du générateur de Nano ID.
Questions fréquentes
Anecdote — comment l'ULID a introduit l'ordre chronologique dans le monde des identifiants
La spécification ULID a été publiée en 2016 par Alizain Feerasta. À l'époque, l'UUID était déjà le moyen standard de générer des identifiants uniques dans les systèmes distribués, mais son caractère entièrement aléatoire — qui rendait tout tri impossible — était perçu comme gênant pour l'efficacité des index de bases de données et pour l'analyse chronologique des journaux (logs). C'est précisément pour résoudre ce problème que l'ULID a été créé.
En réalité, l'UUID possède lui aussi des variantes basées sur le temps : la version 1 (adresse MAC plus horodatage) et la version 7 (normalisée en 2024, combinant horodatage et valeurs aléatoires). L'ULID, en revanche, est une spécification indépendante, distincte de la norme UUID (RFC 4122), qui se distingue par une conception plus simple et une représentation compacte en Base32.
Aujourd'hui, des bibliothèques d'implémentation de l'ULID existent dans presque tous les langages de programmation majeurs, et il est largement adopté partout où préserver l'ordre de création importe : identifiants d'événements dans les systèmes distribués, identifiants de trace dans les journaux, ou encore clés primaires de bases de données. Sa philosophie de conception recoupe largement celle de l'UUID v7, apparu à la même époque, et les deux coexistent comme deux approches différentes d'un même objectif : un identifiant triable proche de l'UUID.