UUID-Generierung

Das Modul uuid erzeugt, validiert, untersucht, parst und formatiert UUIDs. In deterministischen Workflows läuft die Erzeugung von v1, v4 und v7 als aufgezeichneter Seiteneffekt; beim Replay wird der aufgezeichnete Wert zurückgegeben. Die Namespace-basierten Versionen v3 und v5 sind deterministisch und laufen direkt.

Diese Seite ist eine API-Referenz mit einzelnen Aufrufen. Werte wie namespace, name, input und id stammen aus der umgebenden Anwendung. Behandeln Sie den zweiten Rückgabewert error, bevor Sie erzeugte, geparste, untersuchte oder formatierte Ergebnisse verwenden. UUIDs sind Identifikatoren und keine Bearer-Anmeldedaten; verwenden Sie keine UUID-Version als Authentifizierungstoken oder Geheimnis.

Laden

local uuid = require("uuid")

Nichtdeterministische UUIDs

Version 1

Zeitbasierte UUID mit Zeitstempel und Knoten-ID.

Version 1 legt Erzeugungszeit und Knotenkennung offen. Vermeiden Sie sie, wenn diese Angaben sensibel sind; bevorzugen Sie v4, wenn nur ein undurchsichtiger Identifikator benötigt wird.

local id, err = uuid.v1()

Gibt zurück: string, error

Version 4

Zufällige UUID.

local id, err = uuid.v4()

Gibt zurück: string, error

Version 7

Eine zeitgeordnete UUID, die ihre Erzeugungszeit für chronologische Indizierung kodiert. Verlassen Sie sich nicht auf eine streng monotone Reihenfolge, insbesondere bei Werten, die im selben Zeitintervall erzeugt werden.

local id, err = uuid.v7()

Gibt zurück: string, error

Deterministische UUIDs

Version 3

Deterministische UUID aus Namespace und Name mit MD5.

local id, err = uuid.v3(namespace, name)
Parameter Typ Beschreibung
namespace string Gültiger UUID-String
name string Zu hashender Wert

Gibt zurück: string, error

Version 5

Deterministische UUID aus Namespace und Name mit SHA-1.

local NS_URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"
local id, err = uuid.v5(NS_URL, "https://example.com/resource")
if err then
    return nil, err
end
Parameter Typ Beschreibung
namespace string Gültiger UUID-String
name string Zu hashender Wert

Gibt zurück: string, error

Inspektion

Validieren

local valid = uuid.validate(input)
Parameter Typ Beschreibung
input any Zu prüfender Wert

Gibt zurück: boolean, nil. Nicht als Zeichenkette vorliegende und fehlerhafte Eingaben geben false zurück; die Validierung löst keinen strukturierten Fehler aus.

Version abrufen

local ver, err = uuid.version(id)
Parameter Typ Beschreibung
uuid string Gültiger UUID-String

Gibt zurück: integer, error

Variante abrufen

local var, err = uuid.variant(id)
Parameter Typ Beschreibung
uuid string Gültiger UUID-String

Gibt zurück: string, error (RFC4122, Reserved, Microsoft, Future, NCS oder Invalid)

Parsen

local info, err = uuid.parse(id)
Parameter Typ Beschreibung
uuid string Gültiger UUID-String

Gibt zurück: table, error

Zurückgegebene Tabellenfelder:

  • version (integer): UUID-Version (1, 3, 4, 5 oder 7)
  • variant (string): RFC4122, Reserved, Microsoft, Future, NCS oder Invalid
  • timestamp (integer): Unix-Zeitstempel (nur v1 und v7)
  • node (string): 6 rohe Knoten-ID-Bytes (nur v1)

Formatieren

local formatted, err = uuid.format(id, "standard")
local formatted, err = uuid.format(id, "simple")
local formatted, err = uuid.format(id, "urn")
Parameter Typ Beschreibung
uuid string Gültiger UUID-String
format string? standard (Standard), simple oder urn

Gibt zurück: string, error

Fehler

Bedingung Art Wiederholbar
Ungültiger Eingabetyp errors.INVALID nein
Ungültiges UUID-Format errors.INVALID nein
Nicht unterstützter Formattyp errors.INVALID nein
Generierung fehlgeschlagen errors.INTERNAL nein

Informationen zum Umgang mit Fehlern finden Sie unter Fehlerbehandlung.