Що таке Sqids?

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

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

https://example.com/Lqj8a0

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

const s = try sqids.Sqids.init(allocator, .{})
const id = try s.encode(&.{1, 2, 3}); // "86Rf07"
const numbers = try s.decode(id); // {1, 2, 3}

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

const s = try sqids.Sqids.init(allocator, .{.min_length = 10})
const id = try s.encode(&.{1, 2, 3}); // "86Rf07xd4z"
const numbers = try s.decode(id); // {1, 2, 3}

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

const s = try sqids.Sqids.init(allocator, .{.alphabet = "k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt"})
const id = try s.encode(&.{1, 2, 3}); // "XRKUdQ"
const numbers = try s.decode(id); // {1, 2, 3}

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

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

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

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

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

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

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

Функції

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

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