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() and toBase() / 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.2

  • Required extension: ext-bcmath

  • Optional sequence backends: filesystem, in-memory, PSR-16 cache, callback.