jchook/uuid

Fast, Secure UUIDs

v1.0.0 2018-04-09 03:46 UTC

This package is not auto-updated.

Last update: 2024-04-23 05:32:44 UTC


README

Pure PHP.

Generate RFC-4122 compliant random UUIDs with better statistical dispersion than mt_rand(), and 5x faster than create_uuid().

Example Usage

If you are using composer, make sure you require 'vendor/autoload.php, then the code should Just Work™. Otherwise you can require lib/Uuid.php directly.

<?php

use Jchook\Uuid;

Uuid::v4(); // 2ca24f61-2a32-45d0-93d1-409f944a43e1

?>

Install w/ Composer

composer require jchook/uuid

Requirements

  • PHP 7.0+

Features

  • Very fast!
  • Pure PHP implementation
  • Cryptographically secure PRNG

Performance

Surprisingly, this library is 5x faster than the PECL UUID extension.

package performance
PECL UUID 300k ops/sec
meter/uuid 1.5M ops/sec

Q&A

What is UUID v4?

Universally Unique IDentifiers transcend many constraints of traditional incremental integer IDs, especially in distributed systems. Version 4 means that it's random, instead of being based on the current time, etc. This purely random ID has many advantages.

What about collisions?

The chance of a collision is so vanishingly small that it is arguably smaller than UUID V1's collision probability. For scale, you would need to do-loop Uuid::v4() at max speed for 100,000 years to achieve a 50% chance of one collision.

License

MIT