Cos'è Sqids?

Sqids è una libreria open-source che ti permette di generare identificatori unici brevi da numeri. Questi ID sono sicuri per gli URL, possono codificare diversi numeri e non contengono parole volgari comuni. Leggi di più .

Ecco come appaiono:

https://example.com/Lqj8a0

Esempio rapido di codifica e decodifica:

case sqids (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "86Rf07"
case sqids (decode "86Rf07") of
  Left  {}      -> print "Something went wrong."
  Right numbers -> print numbers -- [1, 2, 3]

Se gli ID sono troppo corti, puoi aggiungere zeri fino a una certa lunghezza:

case runSqids defaultSqidsOptions{ minLength = 10 } (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "86Rf07xd4z"

Crea ID univoci mescolando l'alfabeto:

case runSqids defaultSqidsOptions{ alphabet = "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt" } (encode [1, 2, 3]) of
  Left  {} -> print "Something went wrong."
  Right id -> print id -- "XRKUdQ"

La documentazione completa si trova su https://github.com/sqids/sqids-haskell

Se stai cercando l'originale Hashids Haskell, puoi trovarlo qui: https://github.com/laserpants/hashids-haskell

Utilizzi

L'uso principale di Sqids è puramente visivo. Se desideri utilizzare ID invece di numeri nel tuo progetto, Sqids potrebbe essere una buona scelta.

Buono Per

  • Codifica delle chiavi primarie Se stai usando un database relazionale
  • Risparmio di ricerche nel database Codificando più oggetti
  • Token di accesso temporanei Privi di volgarità e sicuri per gli URL

Non Buono Per

  • Dati sensibili Questa non è una libreria di crittografia
  • ID Utente Può rivelare il conteggio degli utenti se qualcuno scopre l'alfabeto di codifica

Caratteristiche

  • 🆔 Genera ID brevi da numeri non negativi
  • Facile codifica e decodifica
  • 🫣 Gli ID generati automaticamente non contengono volgarità comuni
  • 🎲 Supporto per ID personalizzati tramite alfabeto mescolato
  • 🥳 45 integrazioni (84% utilizzano un nuovo design)
  • 📌 Ogni versione produce gli stessi ID
  • 🍻 Piccola libreria con licenza permissiva

Esempio / Area di gioco