Що таке Sqids?

Sqids - це бібліотека з відкритим вихідним кодом, яка дозволяє генерувати короткі унікальні ідентифікатори з чисел. Ці ідентифікатори безпечні для URL, можуть кодувати кілька чисел і не містять спільних нецензурних слів. Дізнатися більше .

Отак вони виглядають:

https://example.com/Lqj8a0

Швидкий приклад кодування та декодування:

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

Якщо ID занадто короткі, ви можете доповнити їх до певної довжини:

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

Створіть унікальні ID, переставляючи алфавіт:

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

Повна документація доступна на https://github.com/sqids/sqids-nim

Якщо ви шукаєте оригінальний Hashids Nim, ви можете знайти його тут: https://github.com/achesak/nim-hashids

Використання

Основне використання Sqids - це виключно візуальне. Якщо ви хочете використовувати ідентифікатори замість чисел у своєму проекті, Sqids може бути хорошим вибором.

Добре підходить для

  • Кодування основних ключів Якщо використовуєте реляційну базу даних
  • Економія запитів до бази даних Кодуючи кілька об'єктів
  • Тимчасові токени входу Без нецензурної лексики та безпечні для URL

Не підходить для

  • Чутлива інформація Це не бібліотека шифрування
  • Ідентифікатори користувачів Може розкрити кількість користувачів, якщо хтось дізнається алфавіт кодування

Функції

  • 🆔 Генерувати короткі ідентифікатори з не-від'ємних чисел
  • Просте кодування та декодування
  • 🫣 Автоматично згенеровані ідентифікатори не містять спільних нецензурних слів
  • 🎲 Підтримка власних ідентифікаторів через випадковий алфавіт
  • 🥳 45 інтеграцій (84% використовують новий дизайн)
  • 📌 Кожна версія генерує однакові ідентифікатори
  • 🍻 Невелика бібліотека з дозволеною ліцензією

Приклад / Майданчик