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:

import Sqids

Sqids.encode [ 1, 2, 3 ] -- (Ok "86Rf07")
Sqids.decode "86Rf07" -- (Ok [ 1, 2, 3 ])

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

import Sqids
import Sqids.Context

context : Sqids.Context.Context
context = -- set minimum length to 10 in context (check docs)

Sqids.encodeWith context [ 1, 2, 3 ] -- (Ok "86Rf07xd4z")
Sqids.decodeWith context "86Rf07xd4z" -- (Ok [ 1, 2, 3 ])

Skapa unika ID:n genom att blanda alfabetet:

import Sqids
import Sqids.Context

context : Sqids.Context.Context
context = -- set custom alphabet to "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt" in context (check docs)

Sqids.encodeWith context [ 1, 2, 3 ] -- (Ok "XRKUdQ")
Sqids.decodeWith context "XRKUdQ" -- (Ok [ 1, 2, 3 ])

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

Om du letar efter det ursprungliga Hashids Elm, hittar du det här: https://github.com/pdamoc/elm-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