GitHub - btnguyen2k/olaf: Twitter Snowflake implemented in Go (original) (raw)
Golang implementation of Twitter Snowflake.
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))}
Current version: 0.1.0.