--- id: ulid version: "1.1" license: BSD license_treatment: permissive maintenance: dormant --- # ulid — Pyhton version of this: https://github.com/alizain/ulid License: permissive · Maintenance: dormant · Downloads: 95.2K/mo ## 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 above — 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 pip install ulid uv add ulid 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: unspecified - Install friction: high - Maintenance: dormant - Downloads: 95.2K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags unique identifier generation, sortable unique ids, ulid generator, lexicographic sorting ids, uuid alternative, base32 encoded identifiers, timestamp-based unique ids, identifier-generation, sortable-ids [View on SkillFed](https://skillfed.io/packages/ulid) · [View on PyPI](https://pypi.org/project/ulid/)