Geração de UUID

O módulo uuid gera, valida, inspeciona, analisa e formata UUIDs. Em workflows determinísticos, a geração de v1, v4 e v7 é executada como side effect registrado e retorna o valor registrado durante o replay. A geração de v3 e v5 baseada em namespace é determinística e executada diretamente.

Esta página é uma referência de API com chamadas isoladas. Valores como namespace, name, input e id vêm da aplicação circundante. Capture e trate o segundo retorno error antes de consumir resultados gerados, analisados, inspecionados ou formatados. UUIDs são identificadores, não credenciais bearer; não use nenhuma versão de UUID como token de autenticação ou segredo.

Carregamento

local uuid = require("uuid")

UUIDs não determinísticos

Versão 1

UUID baseado em tempo com timestamp e node ID.

A versão 1 expõe seu horário de criação e identificador de nó. Evite-a quando esses dados forem sensíveis; prefira v4 quando precisar apenas de um identificador opaco.

local id, err = uuid.v1()

Retorna: string, error

Versão 4

UUID aleatório.

local id, err = uuid.v4()

Retorna: string, error

Versão 7

UUID ordenado por tempo que codifica o horário de criação para indexação cronológica. Não dependa dele como uma sequência estritamente monotônica, especialmente para valores gerados no mesmo intervalo de timestamp.

local id, err = uuid.v7()

Retorna: string, error

UUIDs determinísticos

Versão 3

UUID determinístico derivado de namespace e nome usando MD5.

local id, err = uuid.v3(namespace, name)
Parâmetro Tipo Descrição
namespace string String UUID válida
name string Valor para hash

Retorna: string, error

Versão 5

UUID determinístico derivado de namespace e nome usando 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
Parâmetro Tipo Descrição
namespace string String UUID válida
name string Valor para hash

Retorna: string, error

Inspeção

validate

local valid = uuid.validate(input)
Parâmetro Tipo Descrição
input any Valor para verificar

Retorna: boolean, nil. Entradas que não sejam strings ou estejam malformadas retornam false; a validação não gera um erro estruturado.

version

local ver, err = uuid.version(id)
Parâmetro Tipo Descrição
uuid string String UUID válida

Retorna: integer, error

variant

local var, err = uuid.variant(id)
Parâmetro Tipo Descrição
uuid string String UUID válida

Retorna: string, error (RFC4122, Reserved, Microsoft, Future, NCS ou Invalid)

parse

local info, err = uuid.parse(id)
Parâmetro Tipo Descrição
uuid string String UUID válida

Retorna: table, error

Campos da tabela retornada:

  • version (integer): Versão do UUID (1, 3, 4, 5 ou 7)
  • variant (string): RFC4122, Reserved, Microsoft, Future, NCS ou Invalid
  • timestamp (integer): Timestamp Unix (apenas v1 e v7)
  • node (string): 6 bytes brutos do node ID (apenas v1)

format

local formatted, err = uuid.format(id, "standard")
local formatted, err = uuid.format(id, "simple")
local formatted, err = uuid.format(id, "urn")
Parâmetro Tipo Descrição
uuid string String UUID válida
format string? standard (padrão), simple ou urn

Retorna: string, error

Erros

Condição Tipo Retentável
Tipo de input inválido errors.INVALID não
Formato de UUID inválido errors.INVALID não
Tipo de formato não suportado errors.INVALID não
Geração falhou errors.INTERNAL não

Consulte Tratamento de erros para trabalhar com erros.