base64-2.0: base64.cabal
cabal-version: 2.0
name: base64
version: 2.0
synopsis: A modern Base64 library
description:
A performant, featureful RFC 4648 and 7049-compliant Base64 implementation
homepage: https://github.com/emilypi/base64
bug-reports: https://github.com/emilypi/base64/issues
license: BSD3
license-file: LICENSE
author: Emily Pillmore
maintainer: Emily Pillmore <emilypi@cohomolo.gy>
copyright: (c) 2019-2026 Emily Pillmore
category: Data
build-type: Simple
extra-doc-files:
CHANGELOG.md
README.md
MIGRATION-1.0.md
MIGRATION-2.0.md
tested-with: GHC ==9.6.7 || ==9.8.4 || ==9.10.3 || ==9.12.4 || ==9.14.1
extra-source-files:
cbits/base64_simd.h
test/simd-native.c
benchmarks/simd-native.c
flag simd
description: Use bundled SIMD kernels where supported, with a scalar fallback
default: False
manual: True
source-repository head
type: git
location: https://github.com/emilypi/base64.git
library
exposed-modules:
Data.Base64.Types
Data.ByteString.Base64
Data.ByteString.Base64.URL
Data.ByteString.Lazy.Base64
Data.ByteString.Lazy.Base64.URL
Data.ByteString.Short.Base64
Data.ByteString.Short.Base64.URL
Data.Text.Encoding.Base64
Data.Text.Encoding.Base64.Error
Data.Text.Encoding.Base64.URL
Data.Text.Lazy.Encoding.Base64
Data.Text.Lazy.Encoding.Base64.URL
Data.Text.Short.Encoding.Base64
Data.Text.Short.Encoding.Base64.URL
other-modules:
Data.Base64.Types.Internal
Data.ByteString.Base64.Internal
Data.ByteString.Base64.Internal.Head
Data.ByteString.Base64.Internal.Tables
Data.ByteString.Base64.Internal.Tail
Data.ByteString.Base64.Internal.Utils
Data.ByteString.Base64.Internal.W16.Loop
Data.ByteString.Base64.Internal.W64.Loop
if flag(simd)
other-modules: Data.ByteString.Base64.Internal.SIMD
cpp-options: -DBASE64_SIMD
c-sources: cbits/base64_simd.c
include-dirs: cbits
cc-options: -O2 -std=c99
build-depends:
base >=4.18 && <4.23
, bytestring >=0.11 && <0.13
, deepseq >=1.4.4.0 && <1.6
, text >=2.0 && <2.3
, text-short ^>=0.1
hs-source-dirs: src
default-language: Haskell2010
ghc-options: -Wall
test-suite base64-tests
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: test
other-modules: Internal
Simd
main-is: Main.hs
build-depends:
base >=4.18 && <4.23
, base64
, base64-bytestring
, bytestring >=0.11
, QuickCheck
, random-bytestring
, tasty
, tasty-hunit
, tasty-quickcheck
, text >=2.0
, text-short
if flag(simd)
cpp-options: -DBASE64_SIMD
ghc-options: -Wall -threaded -with-rtsopts=-N
benchmark bench
default-language: Haskell2010
type: exitcode-stdio-1.0
hs-source-dirs: benchmarks
main-is: Base64Bench.hs
build-depends:
base >=4.18 && <4.23
, base64
, base64-bytestring
, bytestring >=0.11
, criterion
if flag(simd)
cpp-options: -DBASE64_SIMD
ghc-options: -Wall -rtsopts