https://github.com/sinoru/swift-snowflake
A Swift library for Snowflake ID.
https://github.com/sinoru/swift-snowflake
ios linux macos snowflake snowflake-twitter swift swiftpm tvos watchos
Last synced: about 1 month ago
JSON representation
A Swift library for Snowflake ID.
- Host: GitHub
- URL: https://github.com/sinoru/swift-snowflake
- Owner: sinoru
- License: apache-2.0
- Created: 2022-07-20T10:45:27.000Z (over 3 years ago)
- Default Branch: develop
- Last Pushed: 2024-08-17T11:50:12.000Z (over 1 year ago)
- Last Synced: 2025-11-27T17:23:24.593Z (4 months ago)
- Topics: ios, linux, macos, snowflake, snowflake-twitter, swift, swiftpm, tvos, watchos
- Language: Swift
- Homepage:
- Size: 91.8 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# swift-snowflake
| **main** | **develop** |
|:---:|:---:|
| [](https://github.com/sinoru/swift-snowflake/actions/workflows/test.yml) | [](https://github.com/sinoru/swift-snowflake/actions/workflows/test.yml) |
A Swift library for [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID).
## Package Products
* [`Snowflake`][snowflake-docs], main library that contains `Snowflake`. (without importing Foundation)
* [`SnowflakeFoundationCompat`][snowflake-foundation-compat-docs], library that contains make `Snowflake` interoperate better with Foundation.
* `JSONDecoder`, `JSONEncoder` extensions for easily using on JSON parse.
[snowflake-docs]: https://swiftpackageindex.com/sinoru/swift-snowflake/documentation/snowflake
[snowflake-foundation-compat-docs]: https://swiftpackageindex.com/sinoru/swift-snowflake/documentation/snowflakefoundationcompat
## Supported Platforms
swift-snowflake aims to support all of the platforms where Swift 5.3 or later is supported.
## Example
```swift
import Snowflake
let someSnowflakeID: Snowflake = 1822504365596868608
```
```swift
import SnowflakeFoundationCompat
let examples: [Snowflake] = [175928847299117063, 1541815603606036480]
let jsonEncoder = JSONEncoder()
jsonEncoder.snowflakeEncodingStrategy = .number
let data = try jsonEncoder.encode(examples)
```
## Using **swift-snowflake** in your project
To use this package in a SwiftPM project, you need to set it up as a package dependency:
```swift
// swift-tools-version:5.3
import PackageDescription
let package = Package(
name: "MyPackage",
dependencies: [
.package(
url: "https://github.com/sinoru/swift-snowflake.git",
.upToNextMajor(from: "1.0.0") // or `.upToNextMinor
)
],
targets: [
.target(
name: "MyTarget",
dependencies: [
.product(name: "Snowflake", package: "swift-snowflake")
]
)
]
)
```