A real twitter snowflake implementation in Rust
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md |
Icechip
A snowflake library that actually does what it is supposed to.
Adheres to the twitter specification, but also has an improved mode.
Twitter Specification
u64 or i64 | |||
---|---|---|---|
bits 0-40 | bits 41-51 | bits 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