¿Qué es Sqids?

Sqids es una biblioteca de código abierto que te permite generar identificadores cortos únicos a partir de números. Estos IDs son seguros para URL, pueden codificar varios números y no contienen palabras malsonantes comunes. Leer más .

Así es cómo lucen:

https://example.com/Lqj8a0

Ejemplo rápido de codificación y decodificación:

local sqids = Sqids.new()
local encoded = sqids:encode({ 1, 2, 3 }) -- 86Rf07
local decoded = sqids:decode(encoded) -- 1, 2, 3

Si los IDs son muy cortos, puedes rellenarlos hasta cierta longitud:

local sqids = Sqids.new({
  minLength = 10,
})
local encoded = sqids:encode({ 1, 2, 3 }) -- 86Rf07xd4z
local decoded = sqids:decode(encoded) -- 1, 2, 3

Crea IDs únicos al barajar el alfabeto:

local sqids = Sqids.new({
  alphabet = "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt",
})
local encoded = sqids:encode({ 1, 2, 3 }) -- XRKUdQ
local decoded = sqids:decode(encoded) -- 1, 2, 3

La documentación completa está en https://github.com/sqids/sqids-lua

Si estás buscando el Hashids Lua original, puedes encontrarlo aquí: https://github.com/leihog/hashids.lua

Casos de uso

El uso principal de Sqids es puramente visual. Si prefieres usar IDs en lugar de números en tu proyecto, Sqids podría ser una buena elección.

Bueno Para

  • Codificación de claves primarias Si estás usando una base de datos relacional
  • Ahorro de consultas a la base de datos Al codificar varios objetos
  • Tokens de inicio de sesión temporales Libre de vulgaridades y seguro para URL

No Bueno Para

  • Datos sensibles Esto no es una biblioteca de encriptación
  • IDs de Usuario Puede revelar la cantidad de usuarios si alguien descubre el alfabeto de codificación

Características

  • 🆔 Generar IDs cortos a partir de números no negativos
  • Codificación y decodificación sencillas
  • 🫣 Los IDs autogenerados no contienen palabras malsonantes comunes
  • 🎲 Soporte para IDs personalizados a través de un alfabeto aleatorio
  • 🥳 44 integraciones (75% utilizan un nuevo diseño)
  • 📌 Cada versión produce los mismos IDs
  • 🍻 Biblioteca pequeña con una licencia permisiva

Ejemplo / Playground