Skip to content

v1.0.0

Choose a tag to compare

@yosephbernandus yosephbernandus released this 29 Sep 17:13
· 6 commits to master since this release

Release 1.0.0

This marks the first stable release of ulid-python! After comprehensive testing
and optimization, the library is now ready for use.

Features

  • High Performance: Rust-powered implementation with optimized Base32 encoding
  • Monotonic Ordering: Guarantees lexicographic ordering within the same millisecond
  • Thread Safe: Safe for concurrent use across multiple threads
  • Type Safe: Full type hints for modern Python development
  • Multiple Formats: Support for string, UUID, and binary representations
  • Standards Compliant: Full ULID specification compliance with Crockford Base32

Performance

  • Zero-copy operations
  • Optimized memory usage
  • Pre-computed lookup tables for encoding/decoding

Installation

# Using pip
pip install ulid-python

# Using uv (recommended)
uv add ulid-python

# Basic Usage

import pyulid

# Generate a ULID
ulid_str = pyulid.ulid()
print(ulid_str)  # 01ARZ3NDEKTSV4RRFFQ69G5FAV

# Use as an object
ulid_obj = pyulid.ULID()
print(ulid_obj.datetime)  # datetime object
print(ulid_obj.timestamp)  # milliseconds since epoch

Full documentation available in the
https://github.com/yosephbernandus/ulid-python/blob/master/README.md.