base64

Fast Haskell base64 encoding/decoding (docs.ppad.tech/base64).
git clone git://git.ppad.tech/base64.git
Log | Files | Refs | README | LICENSE

ppad-base64.cabal (2354B)


      1 cabal-version:      3.0
      2 name:               ppad-base64
      3 version:            0.1.0
      4 synopsis:           Fast base64 encoding and decoding on bytestrings.
      5 license:            MIT
      6 license-file:       LICENSE
      7 author:             Jared Tobin
      8 maintainer:         jared@ppad.tech
      9 category:           Cryptography
     10 build-type:         Simple
     11 tested-with:        GHC == { 9.10.3 }
     12 extra-doc-files:    CHANGELOG
     13 description:
     14   Fast base64 encoding and decoding on strict bytestrings.
     15 
     16 flag llvm
     17   description: Use GHC's LLVM backend.
     18   default:     False
     19   manual:      True
     20 
     21 flag sanitize
     22   description: Build with AddressSanitizer and UndefinedBehaviorSanitizer.
     23   default:     False
     24   manual:      True
     25 
     26 source-repository head
     27   type:     git
     28   location: git.ppad.tech/base64.git
     29 
     30 library
     31   default-language: Haskell2010
     32   hs-source-dirs:   lib
     33   ghc-options:
     34       -Wall
     35   if flag(llvm)
     36     ghc-options: -fllvm -O2
     37   exposed-modules:
     38       Data.ByteString.Base64
     39       Data.ByteString.Base64.Arm
     40   build-depends:
     41       base >= 4.9 && < 5
     42     , bytestring >= 0.9 && < 0.13
     43   c-sources:
     44       cbits/base64_arm.c
     45   if arch(aarch64)
     46     cc-options: -march=armv8-a
     47   if flag(sanitize)
     48     cc-options: -fsanitize=address,undefined -fno-omit-frame-pointer
     49     ghc-options: -optl=-fsanitize=address,undefined
     50 
     51 test-suite base64-tests
     52   type:                exitcode-stdio-1.0
     53   default-language:    Haskell2010
     54   hs-source-dirs:      test
     55   main-is:             Main.hs
     56 
     57   ghc-options:
     58     -rtsopts -Wall -O2
     59   if flag(sanitize)
     60     ghc-options: -optl=-fsanitize=address,undefined
     61 
     62   build-depends:
     63       base
     64     , base64-bytestring
     65     , bytestring
     66     , ppad-base64
     67     , tasty
     68     , tasty-hunit
     69     , tasty-quickcheck
     70 
     71 benchmark base64-bench
     72   type:                exitcode-stdio-1.0
     73   default-language:    Haskell2010
     74   hs-source-dirs:      bench
     75   main-is:             Main.hs
     76 
     77   ghc-options:
     78     -rtsopts -O2 -Wall
     79 
     80   build-depends:
     81       base
     82     , base64
     83     , base64-bytestring
     84     , bytestring
     85     , criterion
     86     , ppad-base64
     87 
     88 benchmark base64-weigh
     89   type:                exitcode-stdio-1.0
     90   default-language:    Haskell2010
     91   hs-source-dirs:      bench
     92   main-is:             Weight.hs
     93 
     94   ghc-options:
     95     -rtsopts -O2 -Wall
     96 
     97   build-depends:
     98       base
     99     , base64
    100     , base64-bytestring
    101     , bytestring
    102     , criterion
    103     , ppad-base64
    104     , weigh