Skip to main content

Fast, drop-in replacement for Python's uuid module, powered by Rust.

Project description

Python UUID Utils

Package version PyPI - Downloads Supported Python versions CodSpeed


Fast, drop-in replacement for Python's uuid module, powered by Rust.

Available UUID versions:

  • uuid1 - Version 1 UUIDs using a timestamp and monotonic counter.
  • uuid3 - Version 3 UUIDs based on the MD5 hash of some data.
  • uuid4 - Version 4 UUIDs with random data.
  • uuid5 - Version 5 UUIDs based on the SHA1 hash of some data.
  • uuid6 - Version 6 UUIDs using a timestamp and monotonic counter.
  • uuid7 - Version 7 UUIDs using a Unix timestamp ordered by time.
  • uuid8 - Version 8 UUIDs using user-defined data.

Installation

Using pip:

pip install uuid-utils

or, using conda:

conda install -c conda-forge uuid-utils

Example

>>> import uuid_utils as uuid

>>> # make a random UUID
>>> uuid.uuid4()
UUID('ffe95fcc-b818-4aca-a350-e0a35b9de6ec')

>>> # make a random UUID using a Unix timestamp which is time-ordered.
>>> uuid.uuid7()
UUID('018afa4a-0d21-7e6c-b857-012bc678552b')

>>> # make a UUID using a SHA-1 hash of a namespace UUID and a name
>>> uuid.uuid5(uuid.NAMESPACE_DNS, 'python.org')
UUID('886313e1-3b8a-5372-9b90-0c9aee199e5d')

>>> # make a UUID using an MD5 hash of a namespace UUID and a name
>>> uuid.uuid3(uuid.NAMESPACE_DNS, 'python.org')
UUID('6fa459ea-ee8a-3ca4-894e-db77e160355e')

Compatibility with Python UUID

In some cases, for example if you are using Django, you might need UUID instances to be returned from the standard-library uuid, not a custom UUID class. In that case you can use the uuid_utils.compat which comes with a performance penalty in comparison with the uuid_utils default behaviour, but is still faster than the standard-library.

>>> import uuid_utils.compat as uuid

>>> # make a random UUID
>>> uuid.uuid4()
UUID('ffe95fcc-b818-4aca-a350-e0a35b9de6ec')

Benchmarks

Benchmark Min Max Mean Min (+) Max (+) Mean (+)
UUID v1 0.061 0.299 0.194 0.019 (3.3x) 0.019 (15.4x) 0.019 (10.1x)
UUID v3 0.267 0.307 0.293 0.035 (7.6x) 0.041 (7.5x) 0.039 (7.5x)
UUID v4 0.073 0.119 0.083 0.005 (15.2x) 0.005 (24.6x) 0.005 (17.1x)
UUID v5 0.058 0.189 0.146 0.008 (7.6x) 0.038 (5.0x) 0.016 (9.0x)
UUID v6 0.032 0.033 0.032 0.003 (10.1x) 0.003 (10.3x) 0.003 (10.1x)
UUID v7 0.063 0.063 0.063 0.004 (16.1x) 0.004 (16.0x) 0.004 (16.1x)
UUID from hex 0.128 0.139 0.135 0.016 (8.2x) 0.017 (8.0x) 0.016 (8.3x)
UUID from bytes 0.031 0.135 0.093 0.016 (2.0x) 0.016 (8.6x) 0.016 (5.9x)
UUID from int 0.027 0.102 0.043 0.003 (8.3x) 0.004 (25.0x) 0.003 (12.4x)
UUID from fields 0.031 0.162 0.077 0.005 (6.0x) 0.005 (30.6x) 0.005 (14.7x)

Benchmark results might vary in different environments, but in most cases the uuid_utils should outperform stdlib uuid.

How to develop locally

make build
make test

Or:

maturin develop --release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

uuid_utils-0.15.0a2-cp314-cp314t-win32.whl (168.1 kB view details)

Uploaded CPython 3.14tWindows x86

uuid_utils-0.15.0a2-cp314-cp314-musllinux_1_2_x86_64.whl (529.0 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

uuid_utils-0.15.0a2-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl (348.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.5+ i686

uuid_utils-0.15.0a2-cp313-cp313t-musllinux_1_2_armv7l.whl (606.4 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

uuid_utils-0.15.0a2-cp313-cp313-musllinux_1_2_i686.whl (565.1 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

uuid_utils-0.15.0a2-cp312-cp312-musllinux_1_2_armv7l.whl (606.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARMv7l

uuid_utils-0.15.0a2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (447.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ppc64le

uuid_utils-0.15.0a2-cp310-cp310-win_amd64.whl (176.1 kB view details)

Uploaded CPython 3.10Windows x86-64

uuid_utils-0.15.0a2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (332.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARMv7l

uuid_utils-0.15.0a2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (336.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARMv7l

File details

Details for the file uuid_utils-0.15.0a2-cp314-cp314t-win32.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 168.1 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 4ef581b7c4ecb7e9d6d30556815dad17bc7efe3a395d3ad5ee5392403b284c6c
MD5 f7d7bfd9763ee28fd25d798ebba7de0e
BLAKE2b-256 86eb33844d9a42c3c96a7743d4b8107f41a592c0a1cc697ad206cd70a4b26220

See more details on using hashes here.

File details

Details for the file uuid_utils-0.15.0a2-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp314-cp314-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 529.0 kB
  • Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 45c622ef225d5958d2b1dd34dc5f70b7c7f5615ab51671ca30ce64b65527c4d7
MD5 2f2323a56ef55f6fa5e1c66856fca3dd
BLAKE2b-256 113f07195f2ecd7569889356a30022ae5829a2b1fccd765a99efe92900cb30dd

See more details on using hashes here.

File details

Details for the file uuid_utils-0.15.0a2-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
  • Upload date:
  • Size: 348.4 kB
  • Tags: CPython 3.14, manylinux: glibc 2.5+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 52eaa258e2510287cbe61e51fdfffea20999b1d75c177d3b48cc6e67da7a3002
MD5 5fd86fab03379b72d96b31fee513a97d
BLAKE2b-256 f1856fea87f8e0988d2e29b7f9773f9c393827de5e58a122062bc6cc125c93e1

See more details on using hashes here.

File details

Details for the file uuid_utils-0.15.0a2-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp313-cp313t-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 606.4 kB
  • Tags: CPython 3.13t, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 689a502003b3160e062f7582e76655146a1bc34e686dcb5213c80bbe05a69201
MD5 77e3a4f16e6b6d06f19a8a77eb9186cb
BLAKE2b-256 d59b2d060a9a8af46ed8d6a78767dcb46843513e00851c05952487c90ef81f25

See more details on using hashes here.

File details

Details for the file uuid_utils-0.15.0a2-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp313-cp313-musllinux_1_2_i686.whl
  • Upload date:
  • Size: 565.1 kB
  • Tags: CPython 3.13, musllinux: musl 1.2+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 bdda0bf19a8862d02d7180242f140f102da3a521bf861d8ab937bc2a986d8f63
MD5 ea720863237d7babb3b71595e926f2c4
BLAKE2b-256 11ee70a381c367a61497623933cab8832dd1972eed678cceb3740b192c85075e

See more details on using hashes here.

File details

Details for the file uuid_utils-0.15.0a2-cp312-cp312-musllinux_1_2_armv7l.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp312-cp312-musllinux_1_2_armv7l.whl
  • Upload date:
  • Size: 606.3 kB
  • Tags: CPython 3.12, musllinux: musl 1.2+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp312-cp312-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 0d6e0329d06a45d114058f008dc10e8d3ef700c3871324bfbd397564533e3848
MD5 67df68826c7ebbf3f12317c2f9b74ddf
BLAKE2b-256 279e0b43291c5e60d513c832c35ad69b459b326f1b1772b40b25dc36b2c8cb4a

See more details on using hashes here.

File details

Details for the file uuid_utils-0.15.0a2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 447.6 kB
  • Tags: CPython 3.11, manylinux: glibc 2.17+ ppc64le
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6a8c16c6c359dfbd6f7b2ba273e9ff6f646b0947ac088a3692e65c04aeac5399
MD5 de5d04d387d7831b790182874c6ebcb6
BLAKE2b-256 89beeb80317851bdc88d54821b9d5a86078a48a501287e5d5f853c6c54311a8f

See more details on using hashes here.

File details

Details for the file uuid_utils-0.15.0a2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 176.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 55318db2edd22821c8dd0149f7ccda8d256b9bbee8d59c0e80c8c7fde9a6036d
MD5 025ccb2d161483211ef0dde6d6175fee
BLAKE2b-256 aa46c70862a265980698d802c2d5a912d2459f4d86416a4d9ba9d484da929b4b

See more details on using hashes here.

File details

Details for the file uuid_utils-0.15.0a2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 332.9 kB
  • Tags: CPython 3.10, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 53bf288c9e30180d7f70a33341c4743d03388e7531148ce7a121484de5e8574f
MD5 4ad2dba7c0357fead1e8d105a9c8eb24
BLAKE2b-256 4db1c0807735df4cf3714495ce7a45d059382461fbaad23437f76bf07e83f152

See more details on using hashes here.

File details

Details for the file uuid_utils-0.15.0a2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

  • Download URL: uuid_utils-0.15.0a2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
  • Upload date:
  • Size: 336.2 kB
  • Tags: CPython 3.9, manylinux: glibc 2.17+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uuid_utils-0.15.0a2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 1d1f958be6d96cacc3c884ee9842fc79b3807b1e89141df2dfee837dc3a58306
MD5 ef0f70b13b73d5b4a107c7c0f1ea0b6e
BLAKE2b-256 4c5f45c240f14a8f1128bcd8aa6d6a63e648bdd1ecdbc67b47324659b50c9653

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page