Skip to content

Repository files navigation

UID

Security & Standards Documentation Packagist Downloads License: MIT Packagist Version Packagist PHP Version GitHub Code Size

All-in-one unique ID toolkit for PHP.

Features

  • 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)

Requirements

  • PHP >=8.2
  • A 64-bit PHP runtime

Installation

composer require infocyph/uid

Namespaced generator functions are autoloaded via src/functions.php.

Quick Usage

<?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.

References

Security

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.


Made with ❤️ for the PHP community
MIT Licensed
DocumentationSecurityCode of ConductContributing
🗂️ BugFeatureDocumentationQuestionCI failure
🔀 GeneralBug fixFeatureRefactorPerformanceSecurity & reliabilityDocumentationMaintenance

About

UUID (RFC 4122 + Unofficial/Draft), ULID, Snowflake ID, Sonyflake ID, NanoID, CUID2, KSUID, XID, TBSL (library exclusive) generator!

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

11 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages