Vad är Sqids?

Sqids är ett öppen-källkods-bibliotek som låter dig generera korta unika identifierare från nummer. Dessa ID:n är URL-säkra, kan koda flera nummer och innehåller inte vanliga svordomar. Läs mer .

Så här ser de ut:

https://example.com/Lqj8a0

Snabb kodnings- och avkodningsexempel:

let sqid = initSqids()
let id = sqid.encode([1, 2, 3]) # "86Rf07"
let numbers = sqid.decode(id)   # @[1'u64, 2, 3]

Om ID:n är för korta kan du fylla på dem till en viss längd:

let sqid = initSqids(minLength = 10)
let id = sqid.encode([1, 2, 3]) # "86Rf07xd4z"
let numbers = sqid.decode(id)   # @[1'u64, 2, 3]

Skapa unika ID:n genom att blanda alfabetet:

let sqid = initSqids(
  alphabet = "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt",
)
let id = sqid.encode([1, 2, 3]) # "XRKUdQ"
let numbers = sqid.decode(id)   # @[1'u64, 2, 3]

Fullständig dokumentation finns på https://github.com/sqids/sqids-nim

Om du letar efter det ursprungliga Hashids Nim, hittar du det här: https://github.com/achesak/nim-hashids

Användningsområden

Det primära användningsområdet för Sqids är rent visuellt. Om du vill använda ID:n istället för nummer i ditt projekt kan Sqids vara ett bra val.

Bra för

  • Kodning av primärnycklar Om du använder en relationsdatabas
  • Spara databashämtningar Genom att koda flera objekt
  • Tillfälliga inloggnings-token Fri från svordomar och URL-säkra

Inte bra för

  • Känsliga data Detta är inte ett krypteringsbibliotek
  • Användar-ID:n Kan avslöja antalet användare om någon får tag på kodningsalfabetet

Funktioner

  • 🆔 Generera korta ID:n från icke-negativa nummer
  • Enkel kodning och avkodning
  • 🫣 Auto-genererade ID:n innehåller inte vanliga svordomar
  • 🎲 Stöd för anpassade ID:n via skufflat alfabet
  • 🥳 45 integrationer (84% använder en ny design)
  • 📌 Varje version producerar samma ID:n
  • 🍻 Litet bibliotek med en tillåtande licens

Exempel / Lekplats