Skip to content

sinoru/swift-snowflake

Repository files navigation

swift-snowflake

main develop
Test Test

A Swift library for Snowflake ID.

Package Products

  • Snowflake, main library that contains Snowflake. (without importing Foundation)
  • SnowflakeFoundationCompat, library that contains make Snowflake interoperate better with Foundation.
    • JSONDecoder, JSONEncoder extensions for easily using on JSON parse.

Supported Platforms

swift-snowflake aims to support all of the platforms where Swift 5.3 or later is supported.

Example

import Snowflake

let someSnowflakeID: Snowflake = 1822504365596868608
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-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")
      ]
    )
  ]
)