Metadata-Version: 1.0
Name: ulid
Version: 1.0
Summary: Pyhton version of this: https://github.com/alizain/ulid
Home-page: https://github.com/mdipierro/ulid
Author: Massimo DiPierro
Author-email: massimo.dipierro@gmail.com
License: BSD
Description: # Universally Unique Lexicographically Sortable Identifier
        
        ## This page was copied from https://github.com/alizain/ulid
        
        ## The code was ported to python from https://github.com/alizain/ulid
        
        ## Converted to Python (2 and 3) by Massimo Di Pierro
        
        UUID can be suboptimal for many uses-cases because:
        
        - It isn't the most character efficient way of encoding 128 bits of randomness
        - The string format itself is apparently based on the original MAC & time version (UUIDv1 from Wikipedia)
        - It provides no other information than randomness
        
        Instead, herein is proposed ULID:
        
        - 128-bit compatibility with UUID
        - 1.21e+24 unique ULIDs per millisecond
        - Lexicographically sortable!
        - Canonically encoded as a 26 character string, as opposed to the 36 character UUID
        - Uses Crockford's base32 for better efficiency and readability (5 bits per character)
        - Case insensitive
        - No special characters (URL safe)
        
        ### Usage
        
        ```
        from ulid import ulid
        print ulid()
        ```
        
        Below is the current specification of ULID as implemented in this repository. *Note: the binary format has not been implemented.*
        
        ```
         01AN4Z07BY      79KA1307SR9X4MV3
        
        |----------|    |----------------|
         Timestamp          Randomness
          10 chars           16 chars
           48bits             80bits
           base32             base32
        ```
        
        ### Components
        
        **Timestamp**
        - 48 bit integer
        - UNIX-time in milliseconds
        - Won't run out of space till the year 10895 AD.
        
        **Randomness**
        - 80 bits
        - Cryptographically secure source of randomness, if possible
        
        ### Sorting
        
        The left-most character must be sorted first, and the right-most character sorted last. The default ASCII order is used for sorting.
        
        ### Binary Layout and Byte Order
        
        The components are encoded as 16 octets. Each component is encoded with the Most Significant Byte first (network byte order).
        
        ```
        0                   1                   2                   3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                      32_bit_uint_time_low                     |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |     16_bit_uint_time_high     |       16_bit_uint_random      |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                       32_bit_uint_random                      |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        |                       32_bit_uint_random                      |
        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        ```
        
        ### String Representation
        
        ```
        ttttttttttrrrrrrrrrrrrrrrr
        
        where
        t is Timestamp
        r is Randomness
        ```
        
        ## Test Suite
        
        ## Performance
        
        
Platform: UNKNOWN
