跳转到主要内容

Python绑定到Rust的UUID库。

项目描述

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

FastUUID是一个库,它提供了CPython对Rust的UUID库的绑定。

提供的API与Python内置的UUID类完全相同。

它支持Python 3.7、3.8、3.9、3.10、3.11和3.12。

为什么?

它比Python纯Python实现要快得多,并且在解析UUID的十六进制表示时更加严格。

如果您需要生成大量随机UUID,我们还提供了uuid4_bulk()函数,该函数在整个生成过程中释放GIL。这允许其他线程在库生成UUID时运行。

基准测试

处理器

机器

python编译器

python实现

python实现版本

python版本

python构建

发布

系统

cpu

x86_64

x86_64

GCC 5.5.0

CPython

3.7.2

3.7.2

默认

4.15.0-50-generic

Linux

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

名称

最小值

最大值

平均值

标准差

中位数

四分位距

异常值

操作

轮次

迭代次数

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

亲自运行它们以进行验证。

欢迎提出改进建议。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

fastuuid-0.9.3.tar.gz (20.1 kB 查看哈希值)

上传时间 源代码

构建版本

fastuuid-0.9.3-cp312-none-win_amd64.whl (167.3 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

fastuuid-0.9.3-cp312-cp312-manylinux_2_34_x86_64.whl (276.4 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.34+ x86-64

fastuuid-0.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.8 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

fastuuid-0.9.3-cp312-cp312-macosx_11_0_arm64.whl (247.8 kB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

fastuuid-0.9.3-cp311-none-win_amd64.whl (167.3 kB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

fastuuid-0.9.3-cp311-cp311-manylinux_2_34_x86_64.whl (276.4 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.34+ x86-64

fastuuid-0.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.8 kB 查看哈希值)

上传时间 CPython 3.11 manylinux: glibc 2.17+ x86-64

fastuuid-0.9.3-cp311-cp311-macosx_11_0_arm64.whl (247.8 kB 查看哈希值)

上传时间 CPython 3.11 macOS 11.0+ ARM64

fastuuid-0.9.3-cp310-none-win_amd64.whl (167.3 kB 查看哈希值)

上传时间 CPython 3.10 Windows x86-64

fastuuid-0.9.3-cp310-cp310-manylinux_2_34_x86_64.whl (276.4 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.34+ x86-64

fastuuid-0.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.8 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86-64

fastuuid-0.9.3-cp310-cp310-macosx_11_0_arm64.whl (247.8 kB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

fastuuid-0.9.3-cp39-none-win_amd64.whl (167.3 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

fastuuid-0.9.3-cp39-cp39-manylinux_2_34_x86_64.whl (276.4 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.34+ x86-64

fastuuid-0.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (258.8 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

fastuuid-0.9.3-cp39-cp39-macosx_11_0_arm64.whl (247.9 kB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

fastuuid-0.9.3-cp38-none-win_amd64.whl (167.6 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

fastuuid-0.9.3-cp38-cp38-manylinux_2_34_x86_64.whl (276.8 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.34+ x86-64

fastuuid-0.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (259.3 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

fastuuid-0.9.3-cp38-cp38-macosx_11_0_arm64.whl (248.2 kB 查看哈希值)

上传于 CPython 3.8 macOS 11.0+ ARM64

fastuuid-0.9.3-cp37-none-win_amd64.whl (167.6 kB 查看哈希值)

上传于 CPython 3.7 Windows x86-64

fastuuid-0.9.3-cp37-cp37m-manylinux_2_34_x86_64.whl (276.8 kB 查看哈希值)

上传于 CPython 3.7m manylinux: glibc 2.34+ x86-64

fastuuid-0.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (259.3 kB 查看哈希值)

上传时间: CPython 3.7m manylinux: glibc 2.17+ x86-64

支持