Popularity
0.4
Stable
Activity
0.0
Stable
2
1
0

Programming language: Go
License: MIT License
Tags: Utilities    

olaf alternatives and similar packages

Based on the "Utilities" category.
Alternatively, view olaf alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of olaf or a related project?

Add another 'Utilities' Package

README

Since 10-Apr-2019: Olaf has been merged as a sub-module of btnguyen2k/consu

Olaf

Go Report Card cover.run GoDoc Mentioned in Awesome Go

Golang implementation of Twitter Snowflake.

Getting Started

Install Package

go get github.com/btnguyen2k/olaf

Usage

package main

import (
    "fmt"
    "github.com/btnguyen2k/olaf"
)

func main() {
    // use default epoch
    o := olaf.NewOlaf(1981)

    //use custom epoch (note: epoch is in milliseconds)
    //o := olaf.NewOlafWithEpoch(103, 1546543604123)

    id64 := o.Id64()
    id64Hex := o.Id64Hex()
    id64Ascii := o.Id64Ascii()
    fmt.Println("ID 64-bit (int)   : ", id64, " / Timestamp: ", o.ExtractTime64(id64))
    fmt.Println("ID 64-bit (hex)   : ", id64Hex, " / Timestamp: ", o.ExtractTime64Hex(id64Hex))
    fmt.Println("ID 64-bit (ascii) : ", id64Ascii, " / Timestamp: ", o.ExtractTime64Ascii(id64Ascii))

    id128 := o.Id128()
    id128Hex := o.Id128Hex()
    id128Ascii := o.Id128Ascii()
    fmt.Println("ID 128-bit (int)  : ", id128.String(), " / Timestamp: ", o.ExtractTime128(id128))
    fmt.Println("ID 128-bit (hex)  : ", id128Hex, " / Timestamp: ", o.ExtractTime128Hex(id128Hex))
    fmt.Println("ID 128-bit (ascii): ", id128Ascii, " / Timestamp: ", o.ExtractTime128Ascii(id128Ascii))
}

Document - GoDoc

See GoDoc.

History

Current version: 0.1.0.

2019-01-03 - v0.1.0

First release:

  • Generate 64-bit and 128-bit IDs:
    • Support formats: integer, hex-string (base 16) and ascii-string (base 36).
    • Custom epoch (64-bit ID only).
  • Extract the time metadata from generated ID.