4个版本
0.2.0 | 2023年6月22日 |
---|---|
0.1.2 | 2021年9月11日 |
0.1.1 | 2020年12月29日 |
0.1.0 | 2020年12月29日 |
#2081 在 算法
5,504 每月下载量
在 helyim 中使用
20KB
400 行
sonyflake-rs
受Twitter的Snowflake启发的分布式唯一ID生成器。
这是原始的sony/sonyflake的Rust实现,原始版本是用Go编写的。
Sonyflake ID由以下部分组成
- 39位表示10毫秒为单位的时序
- 8位表示序列号
- 16位表示机器ID
安装
将以下内容添加到您的Cargo.toml
[dependencies]
sonyflake = "0.2"
快速入门
use sonyflake::Sonyflake;
let sf = Sonyflake::new().unwrap();
let next_id = sf.next_id().unwrap();
println!("{}", next_id);
基准测试
基准测试在配备2.8GHz i7和16GB内存的MacBook Pro(15英寸,2017)上运行。使用cargo bench
自行运行。
test bench_decompose ... bench: 1,066 ns/iter (+/- 132)
test bench_new ... bench: 738,129 ns/iter (+/- 318,192)
test bench_next_id ... bench: 37,390 ns/iter (+/- 499)
许可证
根据您的选择,许可协议为
- Apache许可证2.0版 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您有意提交以包含在您的工作中的任何贡献,根据Apache-2.0许可证的定义,将根据上述方式双许可,不附加任何其他条款或条件。
依赖项
~4–5.5MB
~97K SLoC