{"categories":[{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/6"}],"enrichment":{"capability":"Generates and parses ULIDs (Universally Unique Lexicographically Sortable Identifiers), which are 128-bit identifiers that combine a millisecond-precision timestamp with cryptographic randomness, sortable as strings.","skillfed_tags":["identifier-generation","sortable-ids","distributed-systems"],"use_cases":["Generate sortable unique IDs for database records that maintain insertion order without requiring a central sequence","Replace UUIDs in systems where lexicographic ordering and string efficiency matter, such as URL slugs or API keys","Create time-ordered event IDs in distributed systems where multiple services generate identifiers independently","Convert existing UUIDs or timestamps to ULID format for compatibility with systems expecting sortable identifiers","Extract timestamp information from existing ULID values for time-based queries or analytics"],"what_it_does":"ulid-py is a pure-Python implementation of the ULID specification, providing a 128-bit identifier format that combines a 48-bit millisecond-precision timestamp with 80 bits of cryptographic randomness. Unlike UUIDs, ULIDs are lexicographically sortable as strings, making them efficient for database indexing and time-ordered queries. The library generates new ULIDs with timestamp and randomness from standard library sources (time.time() and os.urandom()), and supports creating ULIDs from existing values including UUIDs, timestamps, and raw randomness.\n\nThe package provides a MemoryView base class that allows ULIDs, timestamps, and randomness values to be represented in multiple formats (string, bytes, hex, int, binary, octal) and compared lexicographically. It handles type conversion automatically through a parse() method when the input type is unknown. The implementation is designed for fast, pure-Python operation without external dependencies, making it suitable for applications that need sortable, distributed identifiers without database coordination.","worth_installing":"Yes, with conditions. The package is stable and production-ready for generating sortable identifiers, with no known vulnerabilities and low install friction. However, it is abandoned (last update September 2020) and may lack support for newer Python versions beyond 3.8. Install it if you need ULID functionality and can accept a dependency that will not receive updates; consider alternatives if you require active maintenance or support for Python 3.9+."},"id":"ulid-py","links":{"html":"https://skillfed.io/packages/ulid-py","md":"https://skillfed.io/packages/ulid-py.md","pypi":"https://pypi.org/project/ulid-py/"},"maintenance":{"status":"abandoned"},"meta":{"latest_release":"2020-09-15","license_spdx":null,"license_treatment":"permissive","name":"ulid-py","python_support":"unspecified","summary":"Universally Unique Lexicographically Sortable Identifier"},"popularity":{"monthly_downloads":1853145,"position":3491,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"1.1.0"}
