30 lines
829 B
Markdown
30 lines
829 B
Markdown
|
# 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 51-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-52 | 53-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-96 | 96-127 |
|
||
|
| full unix timestamp ms | machine id | sequence number |
|