Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

itrabbit/rid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

27 Commits

Repository files navigation

Unique ID Generator

Use 6 byte for submission time (UTC). You can use for SQL.

! Limit values to 2310 year.

Identifier structure:

  • 1-byte hardware address CRC4 ID

  • 2-byte process id

  • 4-byte value representing the seconds since the 2018年01月01日 epoch

  • 3-byte counter (random, or manual)

  • 2-byte nanoseconds (the first 2 bytes of the four byte value)

Install

go get github.com/itrabbit/rid

Usage

fmt.Println(rid.New())
// -> t9eti00dzt0e0hkibo9g
fmt.Println(rid.New().String())
// -> t9ew400dzt1db4okkw80
fmt.Println(rid.New().NumeralString())
// -> 218093205000013254195242051055202176

Custom source:

src := rid.NewSource()
// src.Seed(0) <- Set start counter by custom value
id := src.NewID()

Get embedded info:

id := rid.New()
id.Mid() // Hardware Address CRC ID
id.Pid() // Process Pid
id.Time() // With an accuracy of up to 6 bytes (from 8)
id.Counter() 

License and copyright

Copyright (c) 2018 IT Rabbit.

Original encode/decode algorithm: Copyright (c) 2015 Olivier Poitrey rs@dailymotion.com. The same MIT license applies.

Releases

No releases published

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /