Skip to main content

Python bindings to Rust's UUID library.

Project description

https://travis-ci.com/thedrow/fastuuid.svg?branch=master

FastUUID is a library which provides CPython bindings to Rust’s UUID library.

The provided API is exactly as Python’s builtin UUID class.

It is supported on Python 3.7, 3.8, 3.9 & 3.10.

Why?

It is much faster than Python’s pure-python implementation and it is stricter when parsing hexadecimal representation of UUIDs.

If you need to generate a lot of random UUIDs we also provide the uuid4_bulk() function which releases the GIL for the entire duration of the generation. This allows other threads to run while the library generates UUIDs.

Benchmarks

processor

machine

python compiler

python implementation

python implementation version

python version

python build

release

system

cpu

x86_64

x86_64

GCC 5.5.0

CPython

3.7.2

3.7.2

default

4.15.0-50-generic

Linux

Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz

name

min

max

mean

stddev

median

iqr

outliers

ops

rounds

iterations

tests/test_benchmarks.py::test_parse_bytes_fastuuid

8.770148269832134e-07

3.0054012313485146e-05

9.848993185755912e-07

6.654121944953314e-07

9.530049283057451e-07

2.6979250833392143e-08

515;8080

1015332.2082162144

149366

1

tests/test_benchmarks.py::test_parse_bytes_uuid

9.00006853044033e-07

2.4181994376704097e-05

1.0102117337399724e-06

6.361040394445994e-07

9.739887900650501e-07

3.899913281202316e-08

1130;10702

989891.4916557473

198020

1

tests/test_benchmarks.py::test_parse_bytes_le_fastuuid

9.00996383279562e-07

2.4662993382662535e-05

1.0116569599011118e-06

5.687526428398989e-07

9.840005077421665e-07

2.200249582529068e-08

703;9368

988477.3590622543

163052

1

tests/test_benchmarks.py::test_parse_bytes_le_uuid

1.348991645500064e-06

3.5200006095692515e-05

1.5184524591452776e-06

9.295692916442362e-07

1.448992406949401e-06

3.897002898156643e-08

1620;12511

658565.2346092485

170271

1

tests/test_benchmarks.py::test_parse_fields_fastuuid

9.819923434406519e-07

3.2625976018607616e-05

1.217285795660234e-06

1.0234898538816672e-06

1.087988493964076e-06

6.702612154185772e-08

3199;12487

821499.7690477591

143844

1

tests/test_benchmarks.py::test_parse_fields_uuid

1.1137977708131076e-06

0.000147809402551502

1.2054474234359692e-06

5.093104655522965e-07

1.144595444202423e-06

6.060581654310231e-08

2304;5896

829567.4954861335

167983

5

tests/test_benchmarks.py::test_parse_hex_fastuuid

9.870273061096668e-07

2.906599547713995e-05

1.11212962918218e-06

6.906885628642859e-07

1.0759977158159018e-06

3.0995579436421394e-08

577;8272

899175.7559191765

143288

1

tests/test_benchmarks.py::test_parse_hex_uuid

1.3360113371163607e-06

2.6262016035616398e-05

1.4448148991822913e-06

7.064083638385458e-07

1.3989920262247324e-06

2.9016518965363503e-08

679;4802

692130.1826039868

82156

1

tests/test_benchmarks.py::test_parse_int_uuid

5.448004230856896e-07

4.164349229540676e-06

6.099919819231937e-07

2.0401652680352933e-07

5.548994522541762e-07

4.430039552971725e-08

3607;3925

1639365.8107557097

87951

20

tests/test_benchmarks.py::test_parse_int_fastuuid

8.950009942054749e-07

4.946498665958643e-05

1.0105578493921953e-06

6.873330198387691e-07

9.739887900650501e-07

2.1012965589761734e-08

529;12534

989552.4542226401

176088

1

tests/test_benchmarks.py::test_fast_uuidv3

5.410998710431158e-07

3.5570512409321965e-06

5.971385425220447e-07

1.672736409563351e-07

5.526497261598707e-07

2.949964255094524e-08

4865;6332

1674653.248434526

83508

20

tests/test_benchmarks.py::test_uuidv3

3.6269775591790676e-06

4.193797940388322e-05

3.933511159797234e-06

1.4521217506191846e-06

3.782013664022088e-06

6.00120984017849e-08

548;4193

254225.79455743768

53582

1

tests/test_benchmarks.py::test_fast_uuidv4

1.47343598655425e-07

2.069187758024782e-06

1.6777362874701377e-07

7.169360028617447e-08

1.5453133528353646e-07

8.188180800061673e-09

6101;11550

5960412.297619802

198413

32

tests/test_benchmarks.py::test_uuidv4

2.275977749377489e-06

5.939402035437524e-05

2.5699563458422217e-06

1.316784132061215e-06

2.38200300373137e-06

1.309963408857584e-07

2068;5815

389111.667837409

85610

1

tests/test_benchmarks.py::test_fast_uuidv4_bulk_threads

0.0009843519947025925

0.007268004992511123

0.0014418828965801719

0.0007545185495019851

0.0012059269938617945

0.0003288870066171512

42;54

693.5375975204223

549

1

tests/test_benchmarks.py::test_fast_uuidv4_threads

0.0030693279986735433

0.008087011985480785

0.004009611603774935

0.000715605913448762

0.0038650799833703786

0.0006588477554032579

53;19

249.40071478707026

273

1

tests/test_benchmarks.py::test_uuidv4_threads

0.030999513022834435

0.06895541000994854

0.040025271589084616

0.009975862168373506

0.036475206492468715

0.008713199000339955

3;2

24.98421522947798

22

1

tests/test_benchmarks.py::test_fast_uuidv5

5.316498572938144e-07

4.090600123163313e-06

5.890041556925782e-07

1.8620985914996815e-07

5.419497028924525e-07

2.9799412004649576e-08

3998;6415

1697780.8905680121

88921

20

tests/test_benchmarks.py::test_uuidv5

3.7190038710832596e-06

5.8079982409253716e-05

4.403547300216035e-06

2.439066121654033e-06

3.910012310370803e-06

2.169981598854065e-07

2283;4139

227089.64655629804

57383

1

Run them yourself to verify.

What’s Missing?

  • UUIDv1 generation

  • Pickle support

PRs are welcome.

Project details


Download files

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

Source Distribution

fastuuid-0.8.0.tar.gz (15.1 kB view details)

Uploaded Source

Built Distributions

fastuuid-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (199.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

fastuuid-0.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (205.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

fastuuid-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (199.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

fastuuid-0.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (205.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

fastuuid-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (199.9 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

fastuuid-0.8.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (205.7 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

fastuuid-0.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (199.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

fastuuid-0.8.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (205.7 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

File details

Details for the file fastuuid-0.8.0.tar.gz.

File metadata

  • Download URL: fastuuid-0.8.0.tar.gz
  • Upload date:
  • Size: 15.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/0.12.11

File hashes

Hashes for fastuuid-0.8.0.tar.gz
Algorithm Hash digest
SHA256 4d8fc293a05605511224f8162c793b17004adbb45446dfaaaf87c878070bb774
MD5 71daaa020f5d1fde471fa02d8062a16c
BLAKE2b-256 6330a9fb556fcc8baf0e0c2b4d65a7e3cad056c0fbf888a69702a380be0a8d6a

See more details on using hashes here.

File details

Details for the file fastuuid-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastuuid-0.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29d0e64f240cf94715a414f8838493a30a2034fbb0fa1b386a627d534f59879c
MD5 4e020c134d510a11fabcbd8d55e17e00
BLAKE2b-256 1f43d652a5a256f4ae9f5adf7ac64fee6ddb9a2e12a16527e97f041c0ed2a624

See more details on using hashes here.

File details

Details for the file fastuuid-0.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for fastuuid-0.8.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9ada56e08c7cdf6e61d9a8fe509c0cc5fc1097df06ed9d8d3a3407d601554d0a
MD5 8d65f19f925a071c946407db03d6e747
BLAKE2b-256 3839f1282d099331c4c6d1735209ade18f5f663ac726edd00c30976d2b9d36b7

See more details on using hashes here.

File details

Details for the file fastuuid-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastuuid-0.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f50eab0dcfaa493b07162aa2278412810c2f1a0dcdb67f68e76506fb5d0f725
MD5 1f9d12a95f37ce9855e6cdb15dd5839f
BLAKE2b-256 66522b3f3c7361d293230f60fd9a365599c18e2668fc62bdd4b0322a27e33f67

See more details on using hashes here.

File details

Details for the file fastuuid-0.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for fastuuid-0.8.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3a2a31afc64768de3840bab044e2e6fe66c7f969d5eaf524a65fb6312b3fe0a2
MD5 0941fbd678c78162855a588feb111b13
BLAKE2b-256 19a2550f6d83a1a63c6e4c33e9bb590ea5462e3ad06a5de3bfe7a9562f608894

See more details on using hashes here.

File details

Details for the file fastuuid-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastuuid-0.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5dc280089205f98764999ed013b93d325ad74db1d591bc7f15dbe6d8f7274d0a
MD5 3a43083f7712b26278a5a8c0eddbfc56
BLAKE2b-256 13929d5924b062cd7a1e9257045982e0946b78df055a4bdcda8c86b9c2911ddd

See more details on using hashes here.

File details

Details for the file fastuuid-0.8.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for fastuuid-0.8.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d66cdd9a2222935960f4c50281bace32081b533abdb5dcb58b85280b5b953945
MD5 e9a8683b33e82c3b69c04cfc16c771fa
BLAKE2b-256 900ffc17d62afa06ea585d2abfc3bd6002719a57a710a2f49538d155227ea8bb

See more details on using hashes here.

File details

Details for the file fastuuid-0.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for fastuuid-0.8.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1deae4c865ec69ec3027c400e9ce171fcfb3dc1dd0931e06d80d87111a320b8f
MD5 9f4ebb90982456ed775bd312eb3beaf2
BLAKE2b-256 bad7c1b24516ce2ab9158332505eeafcf3852c85191ef11af0ca35b93509b923

See more details on using hashes here.

File details

Details for the file fastuuid-0.8.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for fastuuid-0.8.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b46f6e10684aaae13e2576b84f031b50f0d3741be51d113e6a918fc31251b165
MD5 165948aeaeb486d3e6fa40aeaeb54828
BLAKE2b-256 c8a7b08037aa6045a099079407f63ea1d4b3f4ec954293037f7e2a5ea3a32afd

See more details on using hashes here.

Supported by

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