2リリース

0.1.1 2024年1月5日
0.1.0 2024年1月5日

#789 in テキスト処理

Apache-2.0

8KB
152

次世代、カスタマイズ可能でシンプルなIDシステム、Rustで構築。


Crates.io Version GitHub License

特徴

  • シンプル。 アカイは美しく、最小限のIDを生成し、ユニークです。
  • カスタマイズ可能。 プレフィックス、開始タイムスタンプをパーソナライズし、ノードIDを使用できます。
  • 強靭。 アカイは世界で最も愛されるプログラミング言語であるRustで構築されています。
  • 安全。 スーパーフレイクのユニーク性とランダムな文字の組み合わせにより、重複するIDを生成することができません。

インストール

望ましいバージョンのクレーツをCargo.tomlの依存関係セクションに設定します

[dependencies]
akai = { version = "0.1.0" }

ID

アカイIDは、プレフィックス、スーパーフレイク、そして尾(暗号化セキュリティランダムな文字列)の3つのセクションで構成されています。

スーパーフレイク

スーパーフレイクは、Twitterのスノーフレイクに基づく革新的な識別技術です。スーパーフレイクは以下を結合して生成されます:

  • 42ビットのタイムスタンプ、
  • 10ビットのノードID、および
  • 12ビットのシーケンス番号。

use akai::{Akai, AkaiPrefix, AkaiOptions};

let prefix = AkaiPrefix {
    content: "user".to_string(),
    allows_lowercase: true
};
    
let akai = Akai::new(AkaiOptions {
    prefix,
    custom_bytes: Some(8),
    custom_timestamp: None
});
    
match akai.generate() {
    Ok(id) => println!("{}", id),
    Err(error) => eprintln!("Error: {}", error)
}

依存関係

~2.3–3.5MB
~58K SLoC