Gid

Gid is a small library for generating short globally unique, sortable uri safe identifiers.
Features
- Generated ids are sortable
- Generated ids carry creation time expressed in microseconds
- Generated ids are globally unique
- Minimal footprint
- High performance
Installation
With pip,
pip install gid
or through poetry
poetry add gid
Example ids
ShmX2HaaUB9UQL02
ShmX2JGvSk4ZyZ13
ShmX2Ku8mDizRc23
ShmX2MWQVL5J7022
ShmX2OCegs4MdP22
ShmX2Pu2MDVFHa02
ShmX2RYngGET4Z32
ShmX2TCM6v701q23
ShmX2UrBjxNGYM11
Usage
Generating id
from gid import Guid
some_id = Guid()
some_id.timestamp # contains timestamp expressed in milliseconds
str(some_id) # can be cast to a string
Recreating id from string
from gid import Guid
my_id = Guid()
same_id = Guid(str(my_id))
assert same_id == my_id
assert same_id.timestamp == my_id.timestamp
Id structure
Generated identifiers are case-sensitive, which means string functions (like lowercase or uppercase) on generated
identifiers may break it because Sbt5LrD9iSAwb300 is not the same value as Sbt5LrD9iSAwB300.
The below diagram represents single identifier's structure, which is 16-character long:
Sbt5LrD9iSAwb300
| | |
+- first 7 characters for millisecond timestamp
| |
+- next 7 characters is randomly generated hash
|
+ last two characters to ensure uniqueness of guid in a single millisecond
Within 1 ms there can be (62^2 - 620) unique generated ids on a single machine.
Metadata
Release files for gid 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| gid-1.0.1.tar.gz | 4.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gid-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.7 kB
Release files / gid-1.0.1.tar.gz
| Download URL | gid-1.0.1.tar.gz |
|---|---|
| Size | 4.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
822c77f9129ebb37f6e8b85a46d7faca4f9ec1163cb669273f23b0a3eaa4f6bd
|
|
BLAKE2b-256 checksum How to use checksums |
22b786689440004e26be666795c04bd3a1ec1a97334f86cb5992a3301d62e6bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.8 CPython/3.8.11 Linux/5.8.0-1039-azure
|
Release files / gid-1.0.1-py3-none-any.whl
| Download URL | gid-1.0.1-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4f8cd8e491416258a0c1d0244a25b75db37eef5cf271f4f8e42c9c1e662bc24b
|
|
BLAKE2b-256 checksum How to use checksums |
97cfebd1b84f1308b2b3c8f88d9592c6ca6cf54161b3a3369e2ca2fe60adac1a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.8 CPython/3.8.11 Linux/5.8.0-1039-azure
|
Security for gid 1.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.