Zum Inhalt

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.