A simple-to-use Go (golang) package to generate or parse Twitter snowflake IDs. You can alter the number of bits used for the node id and step number (sequence) by setting the snowflake.NodeBits and snowflake.StepBits values. Remember that There is a maximum of 22 bits available that can be shared between these two values. You do not have to use all 22 bits. By default this package uses the Twitter Epoch of 1288834974657 or Nov 04 2010 01:42:54. You can set your own epoch value by setting snowflake. Epoch to a time in milliseconds to use as the epoch. When setting custom epoch or bit values you need to set them prior to calling any functions on the snowflake package, including NewNode(). Otherwise, the custom values you set will not be applied correctly. Import the package into your project then construct a new snowflake Node using a unique node number. The default settings permit a node number range from 0 to 1023.

Features

  • A very simple Twitter snowflake generator
  • Methods to parse existing snowflake IDs
  • Methods to convert a snowflake ID into several other data types and back
  • JSON Marshal/Unmarshal functions to easily use snowflake IDs within a JSON API
  • Monotonic Clock calculations protect from clock drift
  • The ID as a whole is a 63 bit integer stored in an int64

Project Samples

Project Activity

See All Activity >

Categories

Frameworks

License

BSD License

Follow snowflake for Go

snowflake for Go Web Site

Other Useful Business Software
MongoDB Atlas runs apps anywhere Icon
MongoDB Atlas runs apps anywhere

Deploy in 115+ regions with the modern database for every enterprise.

MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
Start Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of snowflake for Go!

Additional Project Details

Operating Systems

Linux, Mac, Windows

Programming Language

Go

Related Categories

Go Frameworks

Registered

2023-01-23