skillfed

ulid

Pyhton version of this: https://github.com/alizain/ulid

ulid v1.1 95.2K downloads/30d#13,276 on PyPI50
Permissive license BSD DORMANT released

What it is and what it does

ULID is a Python implementation of Universally Unique Lexicographically Sortable Identifiers, a 128-bit identifier format that combines a 48-bit millisecond timestamp with 80 bits of randomness, encoded as a 26-character base32 string. Unlike UUIDs, ULIDs are sortable by creation time and use a more compact, URL-safe representation without special characters.

The package provides a simple interface to generate new ULIDs. It addresses UUID limitations by offering better character efficiency (26 vs 36 characters), lexicographic sortability, and built-in timestamp information. However, the package has been dormant since its 2016 release with no maintenance activity, raising questions about compatibility with modern Python versions and whether it remains suitable for production use.

Use it for:

  • Generate sortable unique identifiers for database records where insertion order matters and you want to avoid UUID's random ordering.
  • Create URL-safe unique IDs for APIs and web applications without special characters or case sensitivity issues.
  • Build distributed systems where you need 128-bit unique IDs with embedded timestamp information for debugging and auditing.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Generates ULIDs (Universally Unique Lexicographically Sortable Identifiers), which are 128-bit unique identifiers encoded as 26-character sortable strings, offering an alternative to UUIDs with better efficiency and lexicographic ordering.

No. The package is dormant (last release 2016-08-01, no updates in 3665 days) with unspecified Python version support, making compatibility with modern Python uncertain. While the concept is sound and there are no known vulnerabilities, the lack of maintenance and high install friction (source tarball) mean you should consider actively maintained ULID implementations instead.

Install

ulid on PyPI

pip

pip install ulid

uv

uv add ulid

poetry

poetry add ulid

Installing ulid

Before you install

High install friction: the package is dormant (last release 2016-08-01, no updates in 3665 days) and ships as a source tarball. No runtime dependencies, but the age and lack of maintenance signal suggest limited ongoing support.

License in practice

BSD license is permissive, allowing commercial and private use with minimal restrictions, making it safe to adopt from a licensing perspective.

Quickstart

pip install ulid

import ulid
print(ulid.ulid())

Python version support is unspecified; the package was last released in 2016 and may not be compatible with modern Python versions.

Verify before relying

  • Whether the package works with current Python versions (3.10+) given its 2016 release date and no updates since.
  • Whether cryptographically secure randomness is actually used in the current implementation.
  • Performance characteristics and suitability for high-volume ID generation workloads.

Package facts

License BSD (permissive)
Python support not specified
Install friction high — source build required
Runtime dependencies none
Maintenance dormant — 3,665 days since the last release
Last repo commit
First released
Downloads 95,250/month — #13,276 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: ulid-1.1.tar.gz

Tags

unique identifier generationsortable unique idsulid generatorlexicographic sorting idsuuid alternativebase32 encoded identifierstimestamp-based unique ids
identifier-generationsortable-ids

More Software Development packages