icechip 0.1.1

A mostly true to spec Twitter Snowflake implementation, with multiple modes.
Documentation
  • Coverage
  • 0%
    0 out of 18 items documented0 out of 15 items with examples
  • Size
  • Source code size: 11.32 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 625.11 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Repository
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • mrcbax

Icechip

A snowflake library that actually does what it is supposed to.

(Mostly) adheres to the twitter specification, but also has an improved mode.

NOTE: Only enhanced and extended modes are available at this time. Twitter original spec is horridly painful to implement with generics, as it supports both u64 and i64 and ignores the sign bit completely in both modes. (essentially u63 and i64 modes).

Twitter Specification

u64 or i64
0-40 41-51 52-62 63
time since an epoch in ms machine id sequence number sign

Enhanced Specification

Utilizes a 64 bit unsigned integer, moves the now spare sign bit and one sequence bit to the machine ID.

u64
0-40 41-53 54-63
time since an epoch in ms machine id sequence number

Extended Enhanced Specification

Utilizes a 128 bit unsigned integer. 32bit machine id, 32bit sequence number. (Ought to be enough for anybody™)

u128
0-63 64-95 96-127
full unix timestamp ms machine id sequence number

Another good doc explaining the general fuctionality of snowflakes:discord api reference