name:                fast-builder
version:             0.1.0.1
synopsis:            Fast ByteString Builder
description:         An efficient implementation of ByteString builder. It should be faster than
                     the standard implementation in most cases.
                     .
                     In many benchmarks, the performance improvement is 2x-10x.
homepage:            http://github.com/takano-akio/fast-builder
license:             PublicDomain
license-file:        LICENSE
author:              Takano Akio
maintainer:          tak@anoak.io
-- copyright:
category:            Data
build-type:          Simple
extra-source-files:  benchmarks/aeson/*.hs
                     benchmarks/aeson/*.json
cabal-version:       >=1.10
tested-with:         GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.1

library
  exposed-modules:     Data.ByteString.FastBuilder,
                       Data.ByteString.FastBuilder.Internal,
                       Data.ByteString.FastBuilder.Unsafe
  other-modules:       Data.ByteString.FastBuilder.Internal.Prim

  -- other-extensions:
  build-depends:       base >= 4.8 && < 4.14, bytestring >= 0.10.6.0, ghc-prim
  -- hs-source-dirs:
  default-language:    Haskell2010
  ghc-options:         -Wall

benchmark aeson
  type:                exitcode-stdio-1.0
  main-is:             main.hs
  hs-source-dirs:      benchmarks/aeson
  other-modules:       Fast, Bstr, HashMapExts
  include-dirs:        benchmarks/aeson
  build-depends:       base, fast-builder, aeson, criterion, bytestring,
    scientific, text, vector, deepseq, unordered-containers, ghc-prim,
    template-haskell, true-name >= 0.1.0.0
  ghc-options:         -fsimpl-tick-factor=120
  ghc-options:         -Wall -threaded -g -rtsopts
  default-language:    Haskell2010

benchmark vector
  type:                exitcode-stdio-1.0
  main-is:             vector.hs
  hs-source-dirs:      benchmarks
  build-depends:       base, fast-builder, criterion, bytestring, vector, deepseq
  ghc-options:         -Wall -threaded -g -rtsopts -eventlog
  default-language:    Haskell2010

benchmark map
  type:                exitcode-stdio-1.0
  main-is:             map.hs
  hs-source-dirs:      benchmarks
  build-depends:       base, fast-builder, criterion, bytestring, containers, deepseq
  ghc-options:         -Wall -threaded -g -rtsopts -eventlog
  default-language:    Haskell2010

test-suite prop
  type:                exitcode-stdio-1.0
  main-is:             prop.hs
  hs-source-dirs:      tests
  build-depends:       base, fast-builder, bytestring, QuickCheck, stm, process
  ghc-options:         -Wall -g -rtsopts
  default-language:    Haskell2010

source-repository head
  type:                git
  location:            https://github.com/takano-akio/fast-builder.git