uuid: LuaJIT FFI-Bindings für libuuid, eine DCE-kompatible Universally Unique Identifier-Bibliothek
Installation
Wenn Sie noch kein RPM-Repository-Abonnement eingerichtet haben, melden Sie sich an. Dann können Sie mit den folgenden Schritten fortfahren.
CentOS/RHEL 7 oder 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
Um diese Lua-Bibliothek mit NGINX zu verwenden, stellen Sie sicher, dass nginx-module-lua installiert ist.
Dieses Dokument beschreibt lua-resty-uuid v1.2.0, das am 07. Mai 2026 veröffentlicht wurde.
LuaJIT FFI-Bindings für libuuid — eine DCE-kompatible Universally Unique Identifier (UUID/GUID) Bibliothek. Generiert v1 (Zeit), v4 (zufällig), v6 (neu geordnet) und v7 (Unix-Epoche) UUIDs und analysiert sowie inspiziert vorhandene UUID-Strings.
Schnellstart
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() --> Abkürzung für 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
Das Modul ist eine Tabelle, die auch aufrufbar ist. Der Aufruf von uuid() ist eine Abkürzung für uuid.generate().
Generatoren
| Funktion | Gibt zurück | Beschreibung |
|---|---|---|
uuid.generate() |
string |
Bester verfügbarer Generator auf dem Host (zufällig, wenn möglich, andernfalls zeitbasiert). |
uuid.generate_random() |
string |
Version 4 (zufällig) UUID. |
uuid.generate_time() |
string |
Version 1 (Zeitstempel + Knoten-ID) UUID. |
uuid.generate_time_safe() |
string, boolean |
Version 1 UUID und ein Flag, das angibt, ob die Generierung zur Einzigartigkeit synchronisiert wurde. |
uuid.generate_time_v6() |
string |
Version 6 UUID — v1-Felder neu geordnet für lexikalische Sortierbarkeit. |
uuid.generate_time_v7() |
string |
Version 7 UUID — Millisekunden Unix-Zeitstempel + zufälliger Anhang. |
Alle Generatoren geben die kanonische 36-Zeichen 8-4-4-4-12 Kleinbuchstaben-Hex-Form zurück, z.B. "f81d4fae-7dec-11d0-a765-00a0c91e6bf6".
Inspektion
| Funktion | Gibt zurück | Beschreibung |
|---|---|---|
uuid.is_valid(id) |
boolean |
Ob id als UUID analysiert werden kann. |
uuid.type(id) |
int oder nil |
UUID-Version (UUID_TYPE_* Konstante), oder nil, wenn ungültig. |
uuid.variant(id) |
int oder nil |
UUID-Variante (UUID_VARIANT_* Konstante), oder nil, wenn ungültig. |
uuid.time(id) |
number, number oder nil |
Sekunden seit der Unix-Epoche und Mikrosekunden innerhalb dieser Sekunde; nil, wenn id keine gültige UUID ist. Bedeutet nur für v1, v6 und v7 etwas. |
Konstantenreferenz
uuid.type gibt eine der folgenden Werte zurück:
| Wert | Konstante | Bedeutung |
|---|---|---|
1 |
UUID_TYPE_DCE_TIME |
Zeitbasiert (v1) |
2 |
UUID_TYPE_DCE_SECURITY |
DCE-Sicherheit (v2) |
3 |
UUID_TYPE_DCE_MD5 |
Namensbasiertes MD5 (v3) |
4 |
UUID_TYPE_DCE_RANDOM |
Zufällig (v4) |
5 |
UUID_TYPE_DCE_SHA1 |
Namensbasiertes SHA-1 (v5) |
6 |
UUID_TYPE_DCE_TIME_V6 |
Neu geordnete Zeit (v6) |
7 |
UUID_TYPE_DCE_TIME_V7 |
Unix-Epochenzeit (v7) |
uuid.variant gibt eine der folgenden Werte zurück:
| Wert | Konstante | Bedeutung |
|---|---|---|
0 |
UUID_VARIANT_NCS |
NCS / Apollo-Erbe |
1 |
UUID_VARIANT_DCE |
DCE 1.1 / RFC 4122 |
2 |
UUID_VARIANT_MICROSOFT |
Microsoft GUID |
3 |
UUID_VARIANT_OTHER |
Reserviert |
Testen
make test # vollständige Pipeline: Rock installieren, Busted ausführen, Coverage, Lint
make unit # nur Busted
make coverage # Busted + luacov-Bericht
make lint # luacheck
Tests befinden sich in spec/ und testen jede öffentliche Funktion sowie die __call Metamethode.
Dokumentation
Die API-Referenz wird mit LDoc erstellt und befindet sich unter docs/:
make docs
GitHub
Sie finden möglicherweise zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-uuid.