1个不稳定版本
0.1.0 | 2023年1月21日 |
---|
#1651 in 编码
9KB
83 行
Lexicoid
基于时间戳的简短且稳定的ID。
深受基于时间戳的简短、友好的base32缩略词启发,作者为@brandur。
安装
使用cargo更新你的Cargo.toml
来安装
[dependencies]
lexicoid = "*"
或者使用cargo-add
你可以运行
cargo add lexicoid
用法
use lexicoid::*;
// generates a lexicoid for the current timestamp
println!("{}", lexicoid_now()); // gj7x3vc
// generates a lexicoid for a given unix timestamp (as u64)
println!("{}", lexicoid(1654401676)); // gei4p52
用例
当你需要基于生成时间戳进行字典排序的简单且简短的ID时。
示例
- @brandur,这个crate的启发者,用它来生成他网站上简短条目的ID。
- 你想要在一个文件夹中混淆文件名,并用仍然保持字典排序的字符串(基于文件创建或修改时间)替换它们。
- 你需要在文件名前加上一个唯一的ID,同时保持它们按创建顺序排序(例如,用于管理你的博客文章、迁移文件或其他类型的文件,这些文件你最终会缓慢地创建)。
警告:由于时间戳的分辨率是每秒,如果你在同一秒内尝试生成多个ID,它们都将相同。这并不直接适用于高频率ID生成。但是,如果你需要将此方法适应高频率ID生成,你总是可以在生成的ID后附加当前的毫秒数(或纳秒数)。
贡献
每个人都非常欢迎为此项目做出贡献。你可以通过在GitHub上打开一个问题来提交错误或提出改进建议。
许可证
在MIT许可证下许可。© Luciano Mammino。
依赖
~590KB
~11K SLoC