packages feed

attoparsec-framer-0.1.0.0: attoparsec-framer.cabal

cabal-version:      3.0
name:               attoparsec-framer
version:            0.1.0.0
synopsis:           Use Attoparsec to parse framed protocol bytestreams
description:
  A library that simplifies the use of
  [Attoparsec](https://hackage.haskell.org/package/attoparsec) when processing
  framed protocol bytestreams.

  As well as reading the haddocks, please take a look at a
  [demo server](https://github.com/adetokunbo/attoparsec-framer/blob/main/toy/Server.hs)
  and [client](https://github.com/adetokunbo/attoparsec-framer/blob/main/toy/Client.hs)
  as working examples.


license:            BSD-3-Clause
license-file:       LICENSE
author:             Tim Emiola
maintainer:         adetokunbo@emio.la
category:           Parsing, Attoparsec, Network API
homepage:           https://github.com/adetokunbo/attoparsec-framer#readme
bug-reports:        https://github.com/adetokunbo/attoparsec-framer/issues
build-type:         Simple
extra-source-files: ChangeLog.md

source-repository head
  type:     git
  location: https://github.com/adetokunbo/attoparsec-framer.git

library
  exposed-modules:
    Data.Attoparsec.Framer
    Data.Attoparsec.Framer.Testing

  hs-source-dirs:   src
  build-depends:
    , attoparsec  >=0.14.4   && <0.15
    , base        >=4.10     && <5
    , bytestring  >=0.10.8.2 && <0.12.0.0
    , exceptions  >= 0.10.4  && < 0.11
    , text        >=1.2.3    && <2.2

  default-language: Haskell2010
  ghc-options:
    -Wall -Wincomplete-uni-patterns -Wpartial-fields -fwarn-tabs

-- toy-server serves a simple framed protocol
executable toy-server
  main-is:          Server.hs
  other-modules:
    Attoparsec.ToyFrame
  build-depends:
    , attoparsec         >=0.14.4   && <0.15
    , attoparsec-binary  >=0.2      && <0.3
    , attoparsec-framer
    , exceptions
    , base               >=4.10     && <5
    , bytestring         >=0.10.8.2 && <0.12.0.0
    , network            >=3.1.0    && <4
    , network-run        >=0.2.2    && <0.3
    , text               >=1.2.3    && <2.2
    , QuickCheck

  hs-source-dirs:   toy
  default-language: Haskell2010
  ghc-options:      -threaded -rtsopts -with-rtsopts=-N
  ghc-options:
    -Wall -Wincomplete-uni-patterns -Wpartial-fields -fwarn-tabs
  ghc-options: -fprof-auto

-- toy-client accesses a simple framed protocol
executable toy-client
  main-is:          Client.hs
  other-modules:
    Attoparsec.ToyFrame
  build-depends:
    , attoparsec         >=0.14.4   && <0.15
    , attoparsec-binary  >=0.2      && <0.3
    , attoparsec-framer
    , base               >=4.10     && <5
    , bytestring         >=0.10.8.2 && <0.12.0.0
    , network            >=3.1.0    && <4
    , network-run        >=0.2.2    && <0.3
    , text               >=1.2.3    && <2.2
    , QuickCheck

  hs-source-dirs:   toy
  default-language: Haskell2010
  ghc-options:      -threaded -rtsopts -with-rtsopts=-N
  ghc-options:
    -Wall -Wincomplete-uni-patterns -Wpartial-fields -fwarn-tabs
  ghc-options: -fprof-auto

test-suite unittests
  type:             exitcode-stdio-1.0
  main-is:          Spec.hs
  other-modules:
    Attoparsec.ToyFrame
    Attoparsec.ToyFrameSpec

  hs-source-dirs:   test toy
  build-depends:
    , attoparsec
    , attoparsec-binary
    , attoparsec-framer
    , exceptions
    , base
    , bytestring
    , hspec
    , QuickCheck
    , text

  default-language: Haskell2010
  ghc-options:
    -Wall -Wincomplete-uni-patterns -Wpartial-fields -fwarn-tabs