https://github.com/yaslab/ULID.swift
Universally Unique Lexicographically Sortable Identifier (ULID) in Swift.
https://github.com/yaslab/ULID.swift
swift ulid
Last synced: 7 months ago
JSON representation
Universally Unique Lexicographically Sortable Identifier (ULID) in Swift.
- Host: GitHub
- URL: https://github.com/yaslab/ULID.swift
- Owner: yaslab
- License: mit
- Created: 2019-01-10T15:12:58.000Z (almost 7 years ago)
- Default Branch: main
- Last Pushed: 2024-11-10T02:05:55.000Z (12 months ago)
- Last Synced: 2025-03-10T17:56:07.957Z (8 months ago)
- Topics: swift, ulid
- Language: Swift
- Homepage: https://swiftpackageindex.com/yaslab/ulid.swift/master/documentation/ulid
- Size: 71.3 KB
- Stars: 120
- Watchers: 3
- Forks: 11
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ULID.swift
[](https://swiftpackageindex.com/yaslab/ULID.swift)
[](https://swiftpackageindex.com/yaslab/ULID.swift)
Implementation of [ULID](https://github.com/ulid/spec/blob/master/README.md) in Swift.
## Usage
### Generate ULID
```swift
import ULID
// Generate ULID using current time
let ulid = ULID()
// Get ULID string
let string: String = ulid.ulidString
// Get ULID binary data
let data: Data = ulid.ulidData
```
### Parse ULID
```swift
import ULID
// Parse ULID string
let ulid = ULID(ulidString: "01D0YHEWR9WMPY4NNTPK1MR1TQ")!
// Get Timestamp as Date
let timestamp: Date = ulid.timestamp
```
### Convert between ULID and UUID
Both ULID and UUID are 128 bit data, so you can convert strings to each other.
#### From ULID to UUID
```swift
import Foundation
import ULID
let ulid = ULID(ulidString: "01D132CXJVYQ7091KZPZR5WH1X")!
let uuid = UUID(uuid: ulid.ulid)
print(uuid.uuidString) // 01684626-765B-F5CE-0486-7FB7F05E443D
```
#### From UUID to ULID
```swift
import Foundation
import ULID
let uuid = UUID(uuidString: "01684626-765B-F5CE-0486-7FB7F05E443D")!
let ulid = ULID(ulid: uuid.uuid)
print(ulid.ulidString) // 01D132CXJVYQ7091KZPZR5WH1X
```
## Installation
### Swift Package Manager
Add the dependency to your `Package.swift`. For example:
```swift
// swift-tools-version: 5.9
import PackageDescription
let package = Package(
name: "MyPackage",
dependencies: [
// Add `ULID.swift` package here.
.package(url: "https://github.com/yaslab/ULID.swift.git", from: "1.3.1")
],
targets: [
.executableTarget(
name: "MyCommand",
dependencies: [
// Then add it to your module's dependencies.
.product(name: "ULID", package: "ULID.swift")
]
)
]
)
```
### CocoaPods
```
pod 'ULID.swift', '~> 1.3.1'
```
## License
ULID.swift is released under the MIT license. See the [LICENSE](https://github.com/yaslab/ULID.swift/blob/master/LICENSE) file for more info.