Sqids Swift

Github Actions

Sqids (发音为 "squids") 是一个小型库,可让您从数字生成唯一 ID。它适用于链接缩短、快速且 URL 安全的 ID 生成,以及解码回数字以加快数据库查找。

特性

🧰 用例

适用于

不适用于

🚀 开始使用

将以下依赖项添加到您的 Swift Package.swift

dependencies.append(
    .package(url: "https://github.com/sqids/sqids-swift.git", from: "0.1.2")
)

sqids 框架导入 Sqids 结构体

import sqids

let sqids = Sqids()

👩‍💻 示例

简单的编码和解码

let sqids = Sqids()
let id = try sqids.encode([1, 2, 3]) // "86Rf07"
let numbers = try sqids.decode(id) // [1, 2, 3]

注意 🚧 由于算法的设计,多个 ID 可以解码回相同的数字序列。如果您的设计中 ID 的规范性很重要,您必须手动重新编码解码后的数字,并检查生成的 ID 是否匹配。

强制 ID 的最小长度

let sqids = Sqids(minLength: 10)
let id = try sqids.encode([1, 2, 3]) // "86Rf07xd4z"
let numbers = try sqids.decode(id) // [1, 2, 3]

通过提供自定义字母表来随机化 ID

let sqids = Sqids(alphabet: "FxnXM1kBN6cuhsAvjW3Co7l2RePyY8DwaU04Tzt9fHQrqSVKdpimLGIJOgb5ZE")
let id = try sqids.encode([1, 2, 3]) // "B4aajs"
let numbers = try sqids.decode(id) // [1, 2, 3]

防止特定词语出现在自动生成的 ID 中的任何位置

let sqids = Sqids(blocklist: ["86Rf07"])
let id = try sqids.encode([1, 2, 3]) // "se8ojk"
let numbers = try sqids.decode(id) # [1, 2, 3]

📝 许可证

MIT