SCRU64:可排序、基于时钟、领域唯一标识符

GitHub tag License Swift Compatibility Platform Compatibility

SCRU64 ID 提供由分布式节点生成的紧凑、按时间排序的唯一标识符。SCRU64 具有以下特点

import Darwin  // import `setenv()`
import Scru64

// pass node ID through environment variable
setenv("SCRU64_NODE_SPEC", "42/8", 1)

// generate a new identifier object
let x = scru64Sync()
print(x)  // e.g., "0u2r85hm2pt3"
print(x.num)  // as a 64-bit unsigned integer

// generate a textual representation directly
print(scru64StringSync())  // e.g., "0u2r85hm2pt4"

有关详细信息,请参阅 SCRU64 规范

SCRU64 的唯一性是领域特定的,即依赖于为每个生成器集中分配节点 ID。如果您需要去中心化的、全局唯一的按时间排序的标识符,请考虑 SCRU128

将 swift-scru64 添加为软件包依赖项

要将此库作为依赖项添加到您的 Xcode 项目,请选择 文件 > 添加软件包 并输入软件包 URL:https://github.com/scru64/swift-scru64

要在 SwiftPM 项目中使用此库,请将以下行添加到您的 Package.swift 文件中的依赖项

.package(url: "https://github.com/scru64/swift-scru64", from: "<version>"),

并且,将 Scru64 作为目标的依赖项包含在内

.target(
  name: "<target>",
  dependencies: [.product(name: "Scru64", package: "swift-scru64")]
)

许可

根据 Apache License, Version 2.0 获得许可。

另请参阅