All-in-one unique ID toolkit for PHP.
- UUID (
v1,v3,v4,v5,v6,v7,v8) - ULID (monotonic and random modes)
- Snowflake, Sonyflake, Randflake, TBSL
- TypeID, ObjectID, NanoID, RandomId, CUID2, KSUID, XID
- Opaque and deterministic IDs
- Value objects and comparator utilities
- Binary conversion and base encoders (
16,32,36,58,62) - Pluggable sequence providers (filesystem, memory, PSR-16 cache, callback)
- PHP
>=8.2 - A 64-bit PHP runtime
composer require infocyph/uidNamespaced generator functions are autoloaded via src/functions.php.
<?php
use Infocyph\UID\Id;
use Infocyph\UID\CUID2;
use Infocyph\UID\NanoID;
$uuid = Id::uuid(); // default UUID strategy (v7)
$ulid = Id::ulid();
$snowflake = Id::snowflake();
$sonyflake = Id::sonyflake();
$tbsl = Id::tbsl();
$randflake = \Infocyph\UID\Randflake::generate(
nodeId: 42,
leaseStart: time() - 5,
leaseEnd: time() + 300,
secret: 'super-secret-key',
);
$nanoid = NanoID::generate(21);
$cuid2 = CUID2::generate(24);<?php
use Infocyph\UID\UUID;
$uuid = UUID::v7();
$ok = UUID::isValid($uuid);
$parsed = UUID::parse($uuid);
$bytes = UUID::toBytes($uuid);
$roundTrip = UUID::fromBytes($bytes);
$base58 = UUID::toBase($uuid, 58);
$decoded = UUID::fromBase($base58, 58);The shared byte-level encoder is available as
Infocyph\UID\Support\BaseEncoder for bases 16, 32, 36, 58, and 62.
- UUID: https://datatracker.ietf.org/doc/html/rfc9562
- ULID: https://github.com/ulid/spec
- Snowflake: https://github.com/twitter-archive/snowflake/tree/snowflake-2010
- Sonyflake: https://github.com/sony/sonyflake
- Randflake: https://github.com/gosuda/randflake
- NanoID: https://github.com/ai/nanoid
- CUID2: https://github.com/paralleldrive/cuid2
- TBSL note: https://github.com/infocyph/UID/blob/main/TBSL.md
Do not disclose suspected vulnerabilities in a public issue, discussion or pull request. Review the security policy, then use GitHub private vulnerability reporting to contact the maintainers confidentially.
UID is protected by PHPForge, an automated quality and security gate covering tests, static and taint analysis, dependency auditing, architecture checks, and release readiness. Automated controls reduce risk but do not replace responsible disclosure or manual review.
MIT Licensed
Documentation • Security • Code of Conduct • Contributing
🗂️ Bug • Feature • Documentation • Question • CI failure
🔀 General • Bug fix • Feature • Refactor • Performance • Security & reliability • Documentation • Maintenance