#distributed-id #simple #auto-increment #uuid #unique-identifier #oats

nightly oats-rs

无需随机 UUID 的麻烦,短而唯一的 ID

5 个版本

0.2.1 2024 年 3 月 20 日
0.2.0 2024 年 3 月 20 日
0.1.2 2024 年 3 月 20 日
0.1.1 2024 年 3 月 3 日
0.1.0 2024 年 2 月 26 日

开发工具 中排名第 1227

Download history 326/week @ 2024-03-18 47/week @ 2024-04-01 56/week @ 2024-07-01

每月下载 56

AGPL-3.0

33KB
555

oats

Used 'nightly' toolchain Version 0.1.0

无需随机 UUID 的麻烦,短而唯一的 ID。

感谢

入门

将库添加到项目中

cargo add oats-rs

使用它生成唯一标识符

    use oats::bowl::{GenerationBehavior, WrappedBowl};
    use std::time::SystemTime;
    
    let wrapped_bowl = WrappedBowl::of(1, GenerationBehavior::Normal, Some(SystemTime::now()));
    let oat = wrapped_bowl.generate();
    
    assert_eq!(oat.node(), 1);

Oats 语法

当使用 ToString 时,Oat 对象以包含节点 ID 和本地唯一标识符(LUID)的混合格式显示,其中包含时间戳和序列 ID。LUID 编码为无填充的 URL 安全 base64 字符串。

    const ENGINE: FastPortable = FastPortable::from(&URL_SAFE, NO_PAD);
    format!("{:X>2X}{}", &self.node, encode_engine(&self luid.to_le_bytes(), &ENGINE))

依赖项

~255KB