packages feed

ulid-0.1.0.0: ulid.cabal

name:                ulid
version:             0.1.0.0
synopsis:            Implementation of ULID, lexicographically sortable unique identifiers
description:         Implementation of alizain's ULID identifier (https://github.com/alizain/ulid ).

                     UUID can be suboptimal for many uses-cases because:

                     It isn't the most character efficient way of encoding 128 bits of randomness
                     UUID v1/v2 is impractical in many environments, as it requires access to a unique, stable MAC address
                     UUID v3/v5 requires a unique seed and produces randomly distributed IDs, which can cause fragmentation in many data structures
                     UUID v4 provides no other information than randomness which can cause fragmentation in many data structures
                     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)
homepage:            https://github.com/steven777400/ulid
license:             BSD3
license-file:        LICENSE
author:              Steve Kollmansberger
maintainer:          steve@kolls.net
copyright:           2017 Steve Kollmansberger
category:            Data
build-type:          Simple
extra-source-files:  README.md
cabal-version:       >=1.10

library
  hs-source-dirs:      src
  exposed-modules:     Data.ULID
                    ,  Data.ULID.Crockford
                    ,  Data.ULID.Random
                    ,  Data.ULID.TimeStamp
  build-depends:       base >= 4.7 && < 5
                    ,  crockford
                    ,  time
                    ,  crypto-api
                    ,  random
                    ,  bytestring
                    ,  binary
  default-language:    Haskell2010

executable ulid-exe
  hs-source-dirs:      app
  main-is:             Main.hs
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  build-depends:       base
                     , ulid
                     , crypto-api
  default-language:    Haskell2010

test-suite ulid-test
  type:                exitcode-stdio-1.0
  hs-source-dirs:      test
  main-is:             Spec.hs
  build-depends:       base
                     , hspec
                     , ulid
  ghc-options:         -threaded -rtsopts -with-rtsopts=-N
  default-language:    Haskell2010

source-repository head
  type:     git
  location: https://github.com/steven777400/ulid.git