Skip to content

Latest commit

 

History

History
69 lines (44 loc) · 2.03 KB

README.md

File metadata and controls

69 lines (44 loc) · 2.03 KB

lastuuid - yet another uuid library

Documentation Continuous Integration Maintainability

UUID type is awesome, but, at the moment, the UUID type in the standard library does not support the uuid7 format.

lastuuid provide fast UUIDv7 generation made by the rust crate uuid7 compatible with Pydantic.

It has additional features that may helps for testing or inspecting UUIDv7.

lastuuid is a developer joke based on the nature of UUIDv7,

where the most recently generated UUID is always the last one when sorted.

Usage

UUID7

>>> from lastuuid import uuid7
>>> uuid7()
UUID('019316cc-f99a-77b3-89d5-ed8c3cf1f50e')

There is no parameter here, the uuid is generated from the current time.

The implementation of uuid7 algorithm is made in the uuid7 rust crate.

Pydantic

This lib has been created because all the other library that implement uuid7 create there own UUID type, so its not easy to use with pydantic.

from uuid import UUID
from pydantic import BaseModel, Field

from lastuuid import uuid7


class Event(BaseModel):
    id: UUID = Field(default_factory=uuid7)

Performance

On my machine the uuid7 is as fast (or slow) as the native uuid4.

$ python -m timeit "from lastuuid import uuid7; uuid7()"
200000 loops, best of 5: 1.8 usec per loop

$ python -m timeit "from uuid import uuid4; uuid4()"
200000 loops, best of 5: 1.82 usec per loop

Read More

There are other usefull function in the library that cab be found in the API documentation.

https://mardiros.github.io/lastuuid/