C# / .NET および PHP で利用可能な 256 ビット 識別子システム。N / D 形式、検証、パーシング、JSON、Symfony、Doctrine DBAL、およびアプリケーション設定に対応しています。
GsIdは、⋞Galactic-Shrine⋟プロジェクト向けに設計された256ビットの識別子システムです。
これは、従来のGUID/UUIDタイプの識別子に代わるカスタマイズされた代替手段を提供し、そのサイズは従来の2倍となっています:
- 従来の
GUID / UUID:128ビット、ハイフンなしの16進数32文字; GsId:256ビット、ハイフンなしの16進数64文字。
本プロジェクトでは、2つの同期化された実装を提供しています:
- C# / .NET 8 版;
- SymfonyおよびDoctrine DBALと統合された PHP 8.3 以上 版。
| フィールド | 値 |
|---|---|
| 組織 | ⋞Galactic-Shrine⋟ |
| プロジェクト | GsId |
| 公式名称 | ⋞Galactic-Shrine⋟ GsId |
| カテゴリ | 256ビット識別子システム |
| 言語 | C# / PHP |
| ライセンス | MPL-2.0 |
| ステータス | 本番 / 1.0.2 |
ハイフンなしのコンパクトなフォーマット。
9F2A6C1E8D4B7A90A13F9C2DE88B421091AF77CB4D6E39A2FC018AD92E7B5C64
16-8-8-8-8-16 のパターンに従った、5つのハイフンを含む可読形式。
9F2A6C1E8D4B7A90-A13F9C2D-E88B4210-91AF77CB-4D6E39A2-FC018AD92E7B5C64
| 形式 | 説明 | 長さ |
|---|---|---|
N |
ハイフンなし | 64 |
D |
ハイフン5つ | 69 |
- 256ビットのID
- 安全なランダム生成
- 厳格なパーシング
- 形式の検証
NおよびD形式- 大文字または小文字での出力
GsIdOptionsによるグローバルオプション- 設定のロック
- C# 側の JSON サポート
- PHP 側の Symfony ブリッジ
- PHP 側の Doctrine DBAL タイプ
appsettings.jsonによる C# アプリケーション設定- YAML またはバンドルによる Symfony 設定
- C# xUnit による単体テスト
- PHP PHPUnit による単体テスト
V4では、GsIdOptionsを使用してデフォルトの動作を一元化しています。
| オプション | 役割 | デフォルト |
|---|---|---|
DefaultCase |
デフォルトの大文字小文字 | Upper |
DefaultTextFormat |
ToString() / toString() のフォーマット |
D |
DefaultJsonFormat |
デフォルトのJSON形式 | D |
DefaultDatabaseFormat |
DB保存形式 | N |
Lock |
オプションのロック | false |
using GalacticShrine.GsId;
GsIdOptions.Configure(
DefaultCase: GsIdCase.Lower,
DefaultTextFormat: GsIdFormat.N,
DefaultJsonFormat: GsIdFormat.D,
DefaultDatabaseFormat: GsIdFormat.N);
GsIdOptions.Lock();
GsId id = GsId.NewGsId();
string value = id.ToString();use GalacticShrine\GsId\GsId;
use GalacticShrine\GsId\GsIdCase;
use GalacticShrine\GsId\GsIdFormat;
use GalacticShrine\GsId\GsIdOptions;
GsIdOptions::configure(
defaultCase: GsIdCase::Lower,
defaultTextFormat: GsIdFormat::N,
defaultJsonFormat: GsIdFormat::D,
defaultDatabaseFormat: GsIdFormat::N,
);
GsIdOptions::lock();
$id = GsId::newGsId();
$value = $id->toString();{
「GsId」: {
「DefaultCase」: 「Lower」,
「DefaultTextFormat」: 「N」,
「DefaultJsonFormat」: 「D」,
「DefaultDatabaseFormat」: 「N」,
「Lock」: true
}
}gsid:
default_case: Lower
default_text_format: N
default_json_format: D
default_database_format: N
lock: trueGsId/
├─ csharp/
│ ├─ src/
│ ├─ tests/
│ └─ examples/
├─ php/
│ ├─ src/
│ ├─ tests/
│ └─ config/
├─ README.md
├─ CHANGELOG.md
├─ LICENSE.md
└─ .gitignore
dotnet test csharp/tests/GalacticShrine.GsId.Tests/GalacticShrine.GsId.Tests.csprojローカルでの検証結果:14 / 14 テスト成功。
cd php
composer install
composer testローカルでの検証結果:23 / 23 テスト成功。
このプロジェクトは、Mozilla Public License 2.0 に基づいて配布されています。
LICENSE.jp.md をご覧ください。
- 組織 : ⋞Galactic-Shrine⋟
- YouTube : @Galactic-Shrine
- Discord: ⋞Galactic-Shrine⋟ コミュニティ
⋞Galactic-Shrine⋟ GsId
256ビット識別子システム
C# · PHP · Symfony · Doctrine