Compatibility Matrix#
UUID Support#
v1,v3,v4,v5: RFC 4122 / RFC 9562 compatible layouts.v6,v7: RFC 9562 time-ordered UUIDs.v8: custom payload strategy inside UUID v8 envelope.guid(): Microsoft-compatible GUID text formatting helper.
Non-UUID Families#
ULID: Crockford Base32 ULID with monotonic and random modes.
Snowflake: 64-bit Twitter-style ID (41/5/5/12).
Sonyflake: 64-bit Sonyflake-style ID (39/16/8).
Randflake: lease-bound encrypted 64-bit ID (30/17/17 before encryption).
TBSL: project-specific time-based sortable hex identifier.
NanoID and CUID2: URL-safe random IDs.
KSUID and XID: sortable short ID families.
Algorithm Interface#
NanoID, CUID2, KSUID, and XID implement
Infocyph\\UID\\Contracts\\IdAlgorithmInterface with:
generate()isValid()parse()
Binary and Alternate Encodings#
UUID / ULID / TBSL:
toBytes()/fromBytes().UUID / ULID / Snowflake / Sonyflake / TBSL:
toBase()/fromBase().Randflake:
toBytes()/fromBytes()andtoBase()/fromBase().KSUID / XID:
toBytes()/fromBytes().Shared byte-level encoder:
Infocyph\\UID\\Support\\BaseEncoder.Supported bases:
16,32,36,58,62.
Runtime Requirements#
Minimum PHP:
8.2Required extension:
ext-bcmathOptional sequence backends: filesystem, in-memory, PSR-16 cache, callback.