#unique-id #snowflake #generate #modification #twitter #guaranteed #ferris-chat

ferrischat_snowflake_generator

用于生成任何用途的保证唯一ID的库

3 个版本 (稳定)

2.0.0 2022年1月2日
1.0.1 2021年8月17日
0.1.0 2021年8月6日

#3#guaranteed


用于 ferrischat_webserver

无许可证

8KB
68

该库基于Twitter的雪花格式,并进行了一些修改来生成雪花。

https://github.com/twitter-archive/snowflake/tree/snowflake-2010

更改

  • 使用无符号128位整数
  • 使用原子16位计数器,允许每毫秒生成多达65,536个ID
  • 响应时间必须小于5微秒

格式

  • 位0到63:Ferris纪元(01/01/2020 00:00:00.0000+00:00)以来的毫秒数。大约600,000,000年的范围。
  • 位64到71:模型的类型(例如,用户、频道、公会)
  • 位73到85:内部16位原子计数器
  • 位86到93:生成此ID所使用的API版本
  • 位94到109:生成此ID的节点
  • 位110到127:未使用

库功能

  • time-safety-checks:检查系统时钟自上次生成雪花以来是否回滚,如果是,则阻塞直到时间在最后一个雪花之后。增加了轻微的性能惩罚,但不是很明显。默认启用。

无运行时依赖

功能