2016-06-01 15:17:09 -05:00
2016-06-01 14:59:26 -05:00
2016-05-25 14:55:49 -05:00
2016-06-01 15:17:09 -05:00

flake

GoDoc Go report Build Status Discord Gophers

flake is a Go package that provides a very simple twitter snowflake ID generator along with several functions to convert an ID into different formats.

Getting Started

Installing

This assumes you already have a working Go environment, if not please see this page first.

go get github.com/bwmarrin/flake

Usage

Import the package into your project then construct a new flake Node using a unique node number from 0 to 1023. With the node object call the Generate() method to generate and return a unique snowflake ID.

Example Program:

package main

import (
        "fmt"
        "github.com/bwmarrin/flake"
)

func main() {

        // Create a new Node with a Node number of 1
        node, err := flake.NewNode(1)
        if err != nil {
                fmt.Println(err)
                return
        }

        // Generate a snowflake ID.
        id, err := node.Generate()
        if err != nil {
                fmt.Println(err)
                return
        }

        // Print out the ID in a few different ways.
        fmt.Printf("Int64  ID: %d\n", id)
        fmt.Printf("String ID: %s\n", id)
        fmt.Printf("Base2  ID: %s\n", id.Base2())
        fmt.Printf("Base64 ID: %s\n", id.Base64())

        // Print out the ID's timestamp
        fmt.Printf("ID Time  : %d\n", id.Time())

        // Print out the ID's node number
        fmt.Printf("ID Node  : %d\n", id.Node())

        // Print out the ID's sequence number
        fmt.Printf("ID Step  : %d\n", id.Step())
}
Description
No description provided
Readme 95 KiB
Languages
Go 95.5%
PLpgSQL 4.5%