uuid: Liens FFI LuaJIT pour libuuid, une bibliothèque d'identifiants universels uniques compatible DCE
Installation
Si vous n'avez pas configuré l'abonnement au dépôt RPM, inscrivez-vous. Ensuite, vous pouvez procéder avec les étapes suivantes.
CentOS/RHEL 7 ou Amazon Linux 2
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install lua-resty-uuid
CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-uuid
Pour utiliser cette bibliothèque Lua avec NGINX, assurez-vous que nginx-module-lua est installé.
Ce document décrit lua-resty-uuid v1.2.0 publié le 07 mai 2026.
Liens FFI LuaJIT pour libuuid — une bibliothèque d'identifiants universels uniques (UUID/GUID) compatible DCE. Génère des UUID v1 (temps), v4 (aléatoire), v6 (temps réordonné) et v7 (époque Unix), plus analyse et inspecte les chaînes UUID existantes.
Démarrage rapide
local uuid = require "resty.uuid"
uuid.generate() --> "f81d4fae-7dec-11d0-a765-00a0c91e6bf6"
uuid.generate_random() --> "550e8400-e29b-41d4-a716-446655440000" (v4)
uuid.generate_time() --> "..." (v1)
uuid.generate_time_v6() --> "..." (v6)
uuid.generate_time_v7() --> "..." (v7)
uuid() --> raccourci pour uuid.generate()
uuid.is_valid("not-a-uuid") --> false
uuid.type(some_v4_id) --> 4
uuid.variant(some_id) --> 1 (DCE)
uuid.time(some_v1_id) --> 1714867200, 123456
API
Le module est une table qui est également appelable. Appeler uuid() est un raccourci pour uuid.generate().
Générateurs
| Fonction | Retourne | Description |
|---|---|---|
uuid.generate() |
string |
Meilleur générateur disponible sur l'hôte (aléatoire si possible, sinon basé sur le temps). |
uuid.generate_random() |
string |
UUID version 4 (aléatoire). |
uuid.generate_time() |
string |
UUID version 1 (timestamp + identifiant de nœud). |
uuid.generate_time_safe() |
string, boolean |
UUID version 1 et un indicateur indiquant si la génération a été synchronisée pour l'unicité. |
uuid.generate_time_v6() |
string |
UUID version 6 — champs v1 réordonnés pour la triabilité lexicale. |
uuid.generate_time_v7() |
string |
UUID version 7 — timestamp Unix en millisecondes + queue aléatoire. |
Tous les générateurs retournent la forme hexadécimale canonique de 36 caractères 8-4-4-4-12, par exemple "f81d4fae-7dec-11d0-a765-00a0c91e6bf6".
Inspection
| Fonction | Retourne | Description |
|---|---|---|
uuid.is_valid(id) |
boolean |
Indique si id est un UUID valide. |
uuid.type(id) |
int ou nil |
Version UUID (UUID_TYPE_* constant), ou nil si invalide. |
uuid.variant(id) |
int ou nil |
Variante UUID (UUID_VARIANT_* constant), ou nil si invalide. |
uuid.time(id) |
number, number ou nil |
Secondes depuis l'époque Unix et microsecondes dans cette seconde ; nil si id n'est pas un UUID valide. Significatif uniquement pour v1, v6 et v7. |
Référence des constantes
uuid.type retourne l'un des :
| Valeur | Constante | Signification |
|---|---|---|
1 |
UUID_TYPE_DCE_TIME |
Basé sur le temps (v1) |
2 |
UUID_TYPE_DCE_SECURITY |
Sécurité DCE (v2) |
3 |
UUID_TYPE_DCE_MD5 |
Basé sur le nom MD5 (v3) |
4 |
UUID_TYPE_DCE_RANDOM |
Aléatoire (v4) |
5 |
UUID_TYPE_DCE_SHA1 |
Basé sur le nom SHA-1 (v5) |
6 |
UUID_TYPE_DCE_TIME_V6 |
Temps réordonné (v6) |
7 |
UUID_TYPE_DCE_TIME_V7 |
Temps d'époque Unix (v7) |
uuid.variant retourne l'un des :
| Valeur | Constante | Signification |
|---|---|---|
0 |
UUID_VARIANT_NCS |
Héritage NCS / Apollo |
1 |
UUID_VARIANT_DCE |
DCE 1.1 / RFC 4122 |
2 |
UUID_VARIANT_MICROSOFT |
GUID Microsoft |
3 |
UUID_VARIANT_OTHER |
Réservé |
Tests
make test # pipeline complet : installer rock, exécuter busted, couverture, lint
make unit # uniquement busted
make coverage # rapport busted + luacov
make lint # luacheck
Les tests se trouvent dans spec/ et exercent chaque fonction publique ainsi que le métaméthode __call.
Documentation
La référence API est construite avec LDoc et se trouve sous docs/ :
make docs
GitHub
Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-uuid.